Мне нужно быстрое приложение командной строки, чтобы вернуть цвет пикселя под курсором мыши.
Как я могу создать это на VC ++, мне нужно что-то похожее на this, но в идеале не в .NET, чтобы его можно было запускать много раз в секунду?
Мне нужно быстрое приложение командной строки, чтобы вернуть цвет пикселя под курсором мыши.
Как я могу создать это на VC ++, мне нужно что-то похожее на this, но в идеале не в .NET, чтобы его можно было запускать много раз в секунду?
Прямо из головы простой способ:
#include <stdio.h>
#include <Windows.h>
int main(void) {
POINT p;
COLORREF color;
HDC hDC;
BOOL b;
// Get the device context for the screen
hDC = GetDC(NULL);
if (hDC == NULL)
return 3;
// Get the current cursor position
b = GetCursorPos(&p);
if (!b)
return 2;
// Retrieve the color at that position
color = GetPixel(hDC, p.x, p.y);
if (color == CLR_INVALID)
return 1;
// Release the device context again
ReleaseDC(GetDesktopWindow(), hDC);
printf("%i %i %i", GetRValue(color), GetGValue(color), GetBValue(color));
return 0;
}
ETA: Похоже, работает, по крайней мере, для меня.
ETA2: добавлена проверка ошибок.
ETA3: закомментированный код, скомпилированный исполняемый файл и решение Visual Studio можно найти в мой репозиторий SVN.
CreateProcess
, в C # использовать Process.Start
, в C вы можете использовать popen
, & c. ...
- person Joey; 20.06.2010