Ich möchte die gleiche Funktion "Find Windows..." von spy++ in C# erstellen. Ich habe versucht, mit dieser Funktion der WINAPI:
HWND WINAPI WindowFromPoint(__in POINT Point);
http://msdn.microsoft.com/en-US/library/ms633558.aspx Aber ich komme nicht dazu, alle Elemente damit zu erreichen, weil sie deaktiviert oder versteckt sind.
Zum Beispiel kann ich mit dem Window 7-Taschenrechner im Programmiermodus nicht das "A B C D E F" erhalten. mit meinem Programm, wenn sie deaktiviert sind, kann spy++ sie abrufen.
Bearbeiten: Ich habe es versucht, aber es funktioniert nicht:
[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 ist die Position der Maus.
Ich kenne mich mit der WINAPI nicht aus und ich kann mir vorstellen, dass es sich bei Ihrer Erklärung um einen Mangel an Verständnis meinerseits handelt. Es ist möglich, ein kleines Beispiel für ChildWindowFromPointEx Funktion oder wissen, was mein Code nicht funktioniert? thanx für Ihre Antwort
Ich habe versucht, die Schleife zu erstellen, aber es scheint, dass der Handle unter dem anderen Handle ist, aber nicht Kinder des Handles, die Schleife sendet immer den gleichen Handle und keine das gewünschte Kind, wenn die Taste "a b c d e f" deaktiviert ist. Haben Sie eine andere Idee?