2016-01-29 102 views
0

我以前見過很多人問過這個問題,但它似乎並沒有真正回答我的問題,我害怕問別人的問題。 我嘗試在窗口的(100,100)處獲得像素顏色。在這個時候,我可以通過使用pixelsearch autoit來獲得它,但當它有另一個窗口時它不工作。所以我只是想知道是否有它的工作得到x,y的像素顏色

    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++; 
        } 
+0

它可以幫助知道什麼'class'的'au3'對象。使用AutoItX3Lib的 –

+0

; AutoItX3 au3 = new AutoItX3();我在我的代碼中使用這個 – newbie

回答

1

你知道薛定諤的貓嗎​​?

這裏的關鍵是像素沒有明確的顏色,而該部分窗口是不可見的。在Windows中,控件的內容是根據操作系統的請求繪製的。當操作系統知道窗口的一部分不可見時,它不會要求該窗口繪製該區域。

您可以使用PrintWindow()Windows API函數讓Window將自己繪製到設備上下文(例如Bitmap)上。然後您可以檢查該位圖中的像素。

如何嵌入和使用PrintWindow()函數見http://www.pinvoke.net/default.aspx/user32.printwindow

相關問題