我想在C#中創建「間諜++」的相同函數「查找窗口...」。 我嘗試用WINAPI的此功能:在C#中創建間諜++的函數「查找窗口...」
HWND WINAPI WindowFromPoint(__in POINT Point);
http://msdn.microsoft.com/en-US/library/ms633558.aspx 但我不到貨讓所有元素與,因爲他們被禁用或隱藏。
例如在程序員模式下使用窗口7計算器時,如果他們被禁用,那麼我無法使用我的程序獲得「A B C D E F」 然後spy ++可以獲取它。
編輯: 我試試這個,但它不工作:
[DllImport("user32.dll")]
public static extern ulong GetClassLongPtr(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
public static extern IntPtr ChildWindowFromPointEx(IntPtr hWndParent, Win32Point pt, uint uFlags);
IntPtr hWnd = WindowFromPoint(myPoint);
hWnd= ChildWindowFromPointEx(hWnd , myPoint, 0x0000);
myPoint是我的鼠標的位置。
我不熟悉WINAPI,我想你的解釋是對我缺乏理解。有可能有一個ChildWindowFromPointEx函數的小例子,或知道我的代碼不工作? thanx您的答案
我已經嘗試創建循環,但是,似乎手柄是另一個手柄下,但不是手柄的兒童,循環送送花兒給人同樣的手柄,沒有慾望的孩子時,鍵「abcdef」被禁用。你有另一個想法嗎?
對於它的價值,你可能*應該*跳過不可見的窗口(只是沒有禁用的)。如果你打開Spy ++,你會發現桌面上堆滿了幾十個和幾十個不可見的窗口 - 主要是工具提示和菜單以及對話框,它們已被解散,但隨時可以再次顯示。你通常會想忽略這些,否則他們會干涉,你可能最終得到一個HWND,用戶根本看不到任何相應的東西! – BrendanMcK 2012-03-01 02:30:51