本帖最后由 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
复制代码 |