Так можно сделать gui прозрачным для кликов мыши, а событие клика определять по координатам курсора в момент клика:
#SingleInstance Force
#NoEnv
hWnd := WinExist("Окно игры")
Gui WinPicture: +HwndGuiH -Caption -Border +AlwaysOnTop +ToolWindow +Owner%hWnd% +Lastfound +E0x20 ; +Disabled
Gui WinPicture: Margin, 0, 0
Gui WinPicture: Color, 0
WinSet TransColor, 0 200
Gui WinPicture: Add, Button,, My Button
Gui WinPicture: Show, NA
Return
Esc::ExitApp
#If WinActive("ahk_id" hWnd)
*LButton::
WinGetPos, guiX, guiY, guiWidth, guiHeight, % "ahk_id" GuiH
CoordMode, Mouse, Screen
MouseGetPos, cursorX, cursorY, cursorWin
If (cursorX>guiX and cursorX<guiX+guiWidth and cursorY>guiY and cursorY<guiY+guiHeight) {
SetTimer, Action, -1
} Else {
Send {LButton Down}
ToolTip % "cursorX= " cursorX ", cursorY= " cursorY "`nguiX= " guiX ", guiY= " guiY
}
Return
*~LButton Up::Return
#If
Action:
MsgBox
Return
В некоторых играх MouseGetPos выдает неправильные координаты, зависит от игры и разрешения экрана устанавливаемого игрой.