; 高亮鼠标下的控件区域(全屏幕).ahk #NoEnv #SingleInstance Force CoordMode, ToolTip, Screen ; ------------ 创建主窗口 Gui, +LastFound +hwndhgui1 WinSet, Transparent, 180 Gui, Color, Black, Blue Gui, Font, cYellow s12 Gui, -Caption Gui, Add, Text,, 窗口ID: Gui, Add, Edit, ys w100 cWhite vWinID Gui, Add, Text, ys, 控件: Gui, Add, Edit, ys w200 cWhite vCtrlID Gui, Add, Text, xm 0x10 w700 h5 ; ------------------------- Gui, Add, Text, xm Section, WinX: Gui, Add, Edit, ys cWhite vWinX w100 Gui, Add, Text, ys, WinY: Gui, Add, Edit, ys cWhite vWinY w100 Gui, Add, Text, ys, WinW: Gui, Add, Edit, ys cWhite vWinW w100 Gui, Add, Text, ys, WinH: Gui, Add, Edit, ys cWhite vWinH w100 Gui, Add, Text, xm 0x10 w700 h5 ; ------------------------- Gui, Add, Text, xm Section, cX: Gui, Add, Edit, ys cWhite vcX w100 Gui, Add, Text, ys, cY: Gui, Add, Edit, ys cWhite vcY w100 Gui, Add, Text, ys, cW: Gui, Add, Edit, ys cWhite vcW w100 Gui, Add, Text, ys, cH: Gui, Add, Edit, ys cWhite vcH w100 Gui, Add, Button, x700 gGuiClose -Theme 0x8000, 退出 ; ------------ 创建透明遮罩窗口 Gui, Trans: +ToolWindow -Caption +AlwaysOnTop +LastFound +hwndhTrans Gui, Trans: Color, Green WinSet, Transparent, 150 WinSet, ExStyle, +0x20 ; 鼠标穿透 Gui, Show, x0 y0 SetTimer, highlight_ctrl, 100 OnMessage(0x0201, "WM_LBUTTONDOWN") return highlight_ctrl: MouseGetPos,,, WinID, CtrlID WinGetPos, WinX, WinY, WinW, WinH, ahk_id %WinID% ControlGetPos, cX, cY, cW, cH, %CtrlID%, ahk_id %WinID% x := WinX + cX, y := WinY + cY Info := WinID "|" CtrlID "|" WinX "|" WinX "|" WinY "|" WinW "|" WinH if (Info = LastInfo) Return if !(x = "" || y = "" || cW = "" || cH = "") Gui, Trans:Show, X%x% Y%y% w%cW% h%cH% NA else Gui, Trans:Cancel GuiControl,, WinID, %WinID% GuiControl,, CtrlID, %CtrlID% GuiControl,, WinX, %WinX% GuiControl,, WinY, %WinY% GuiControl,, WinW, %WinW% GuiControl,, WinH, %WinH% GuiControl,, cX, %cX% GuiControl,, cY, %cY% GuiControl,, cW, %cW% GuiControl,, cH, %cH% LastInfo := WinID "|" CtrlID "|" WinX "|" WinX "|" WinY "|" WinW "|" WinH Return GuiClose: ExitApp Return WM_LBUTTONDOWN(wParam, lParam, msg, hwnd) { global hgui1 If (hwnd = hgui1) DllCall("PostMessage", "uint", hWnd, "uint", 0x00A1, "uint", 2, "uint", 0) }