我以前见过很多人问这个问题,但它似乎没有真正回答我的问题,我不敢问别人的问题。我尝试在窗口的(100,100)处获得像素颜色。目前我可以通过使用pixelsearch autoit获得它,但当它上面有另一个窗口时,它就不起作用了。所以我想知道有没有办法让它工作
au3.Sleep(1000);
SetForegroundWindow(hwndMain);
au3.PixelSearch(127, 232, 127, 232, 0x030100);
if (au3.error != 1)
{
SendMessage(hwndMain, WM_LBUTTONDOWN, new IntPtr(MK_LBUTTON), CreateLParam(127, 232));
SendMessage(hwndMain, WM_LBUTTONUP, new IntPtr(MK_LBUTTON), CreateLParam(127, 232));
au3.Sleep(1000);
//i++;
}发布于 2016-01-30 05:33:14
你知道Schrödinger的猫吗?
这里的要点是,像素没有明确的颜色,而窗口的那部分是不可见的。在Windows中,控件的内容是根据操作系统的请求绘制的。当操作系统知道窗口的一部分不可见时,它不会要求窗口绘制该区域。
您可以使用PrintWindow() Windows API函数来要求窗口将自身绘制到设备上下文(例如位图)上。然后,您可以检查该位图中的像素。
如何嵌入和使用PrintWindow()函数请参见http://www.pinvoke.net/default.aspx/user32.printwindow
https://stackoverflow.com/questions/35094262
复制相似问题