我需要一个快速的命令行应用程序来返回鼠标光标下像素的颜色。
如何在 VC++ 中构建它,我需要类似的东西,但最好不要在 .NET 中,这样它可以每秒运行多次?
我需要一个快速的命令行应用程序来返回鼠标光标下像素的颜色。
如何在 VC++ 中构建它,我需要类似的东西,但最好不要在 .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 存储库中找到。