本帖最后由 afan 于 2015-1-19 16:41 编辑 #include <WinAPIEx.au3>
HotKeySet('{esc}', '_Exit')
HotKeySet('^!f', '_WindowFromPoint') ; 设置 CTRL+ALT+F调用检索鼠标位置的窗口句柄函数, CTRL+ALT+F结束该函数.
Global $g_tStruct = DllStructCreate($tagPOINT) ; 检索鼠标位置的窗口句柄函数用。创建定义检查点的结构.该变量声明必须在主 While 循环之前。
Global $SEFlag, $hWnd_Bak
While 1
Sleep(100)
WEnd
Func _WindowFromPoint() ;检索鼠标位置的窗口句柄.
$SEFlag = Not $SEFlag
While $SEFlag
Sleep(100)
_Position() ; 更新鼠标 X 和 Y 坐标和结构的 X 和 Y 的元素.
Local $hWnd = _WinAPI_WindowFromPoint($g_tStruct) ;依据光标位置检索窗口句柄.
If $hWnd = $hWnd_Bak Then ContinueLoop
$hWnd_Bak = $hWnd
Local $iID = _WinAPI_GetDlgCtrlID($hWnd) ;依据句柄获 ID
Local $sTitle = WinGetTitle($hWnd, '') ;依据句柄获窗口标题
Local $hWnd1 = WinGetHandle($hWnd, '') ;依据句柄获窗口句柄
Local $sPid = WinGetProcess($hWnd, '') ;依据句柄获取窗口关联的进程 ID(PID).
Local $Dir = _WinAPI_GetProcessFileName($sPid) ;检索指定进程可执行文件的完全有效路径(含文件名).
$sTempText = '标题=' & $sTitle & @CRLF & '句柄 =' & $hWnd & @CRLF & '句柄1=' & $hWnd1 & @CRLF & 'ID=' & $iID & @CRLF & '进程=' & $sPid & @CRLF & '路径=' & $Dir
ToolTip($sTempText, Default, Default, '鼠标下的窗口句柄', 1, 1) ; 设置工具提示.
WEnd
EndFunc ;==>_WindowFromPoint
Func _Position()
DllStructSetData($g_tStruct, 'x', MouseGetPos(0)) ;MouseGetPos(0) = 当前鼠标的 X 坐标
DllStructSetData($g_tStruct, 'y', MouseGetPos(1)) ;MouseGetPos(1) = 当前鼠标的 Y 坐标
EndFunc ;==>_Position
Func _Exit()
Exit
EndFunc ;==>_Exit
|