Hallo,
ich würde gerne das Fenster-handle / den Fenstertitel des Fensters unter der Maus herausfinden. Wenn mehrere Fenster übereinander liegen sollte es das oberste Fenster sein. Die Ausgabe muss auch mit Fenstern, die inaktiv sind funktionieren.
Folgender Ansatz liefert oft, aber bei weitem nicht immer das handle zurück:
Code
HotKeySet("{ESC}", "_Quit")
Global $Struct = DllStructCreate("int x;int y")
While 1
Sleep(100)
ToolTip("")
Pos()
$hwnd = WindowFromPoint()
ToolTip($hwnd)
WEnd
Func Pos()
DllStructSetData($Struct, "x", MouseGetPos(0))
DllStructSetData($Struct, "y", MouseGetPos(1))
EndFunc ;==>Pos
Func WindowFromPoint()
Local $x = DllStructGetData($Struct, "X")
Local $y = DllStructGetData($Struct, "Y")
Local $aResult = DllCall("User32.dll", "hwnd", "WindowFromPoint", "int", $x, "int", $y)
Return $aResult[0]
EndFunc ;==>WindowFromPoint
Func _Quit()
Exit
EndFunc ;==>_Quit
Alles anzeigen
Wenn mehrere Fenster übereinander liegen zeit das script gerne mal falsche infos an, ausserdem funktioniert es mehr schlecht als recht, wenn mehrere Fenster derselben Klasse existieren.
Wie würdet ihr das Ganze lösen ?
EDIT: Das hier zeigt das selbe Verhalten: