#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#F1::ListHotkeys
; Get system information about window you are hovering over with mouse
#F2::
{
ToolTipToggle := !ToolTipToggle
if(!ToolTipToggle){
SetTimer, RemoveToolTip, -1000
return
}
WindowUnderCursorInfo := GetUnderCursorInfo(CursorX, CursorY)
CoordMode ToolTip, Screen
; place tooltip in quadrant opposite of cursor
If ( CursorX < (A_ScreenWidth // 2) )
TTXOffset = 150
Else
TTXOffset = -150
If ( CursorY < (A_ScreenHeight // 2) )
TTYOffset = 150
Else
TTYOffset = -150
#Persistent
ToolTip %WindowUnderCursorInfo%
, ( (A_ScreenWidth // 2) + TTXOffset )
, ( (A_ScreenHeight // 2) + TTYOffset )
}
Return
; ; Get screen information, such as coordinates.
; #F3::
; {
; SysGet, MouseButtonCount, 43
; SysGet, VirtualScreenWidth, 78
; SysGet, VirtualScreenHeight, 79
; SysGet, MonitorCount, MonitorCount
; SysGet, MonitorPrimary, MonitorPrimary
; Message .= "Monitor Count:`t" MonitorCount "`nPrimary Monitor:`t" MonitorPrimary
; Loop, %MonitorCount%
; {
; SysGet, MonitorName, MonitorName, %A_Index%
; SysGet, Monitor, Monitor, %A_Index%
; SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
; Message .= "`n`nMonitor:`t#" A_Index "`nName:`t" MonitorName "`nLeft:`t" MonitorLeft "(" MonitorWorkAreaLeft " work)`nTop:`t" MonitorTop " (" MonitorWorkAreaTop " work)`nRight:`t" MonitorRight " (" MonitorWorkAreaRight " work)`nBottom:`t" MonitorBottom "(" MonitorWorkAreaBottom " work)"
; }
; }
#F4::ExitApp
#F5::Reload
#F11::
WinGet, currentTransparency, Transparent, A
if (currentTransparency = 150)
{
WinSet, Transparent, OFF, A
}
else
{
WinSet, Transparent, 150, A
}
return
RemoveToolTip:
ToolTip
return
HexToDec(HexVal)
{
Old_A_FormatInteger := A_FormatInteger
SetFormat IntegerFast, D
DecVal := HexVal + 0
SetFormat IntegerFast, %Old_A_FormatInteger%
Return DecVal
}
MouseIsOverProcess(ByRef CursorX, ByRef CursorY, sought)
{
CoordMode Mouse, Screen
CoordMode Pixel, Screen
MouseGetPos, CursorX, CursorY, Window, Control
WinGet PName, ProcessName, ahk_id %Window%
return ProcessName:=sought
}
GetUnderCursorInfo(ByRef CursorX, ByRef CursorY)
{
CoordMode Mouse, Screen
CoordMode Pixel, Screen
MouseGetPos, CursorX, CursorY, Window, Control
WinGetTitle Title, ahk_id %Window%
WinGetClass Class, ahk_id %Window%
WinGetPos WindowX, WindowY, Width, Height, ahk_id %Window%
WinGet PName, ProcessName, ahk_id %Window%
WinGet PID, PID, ahk_id %Window%
PixelGetColor BGR_Color, CursorX, CursorY
clipboard= %Class%
WindowUnderCursorInfo := "ahk_id " Window "`n"
. "ahk_class " Class "`n"
. "title: " Title "`n"
. "control: " Control "`n"
. "PID: " PID "`n"
. "process name: " PName "`n"
. "top left (" WindowX ", " WindowY ")`n"
. "(width x height) (" Width " x " Height ")`n"
. "cursor's window position (" CursorX-WindowX ", " CursorY-WindowY ")`n"
. "cursor's screen position (" CursorX ", " CursorY ")`n"
. "BGR color: " BGR_Color " (" HexToDec("0x" SubStr(BGR_Color, 3, 2)) ", "
. HexToDec("0x" SubStr(BGR_Color, 5, 2)) ", "
. HexToDec("0x" SubStr(BGR_Color, 7, 2)) ")`n"
Return WindowUnderCursorInfo
}
applog(text){ ;log to the application file
FormatTime, Time,, dd/MM/yyyy HH:mm:ss tt
FileAppend, %Time% %text%`n, %A_WorkingDir%\app.log
}
ClickAtPos(x := 0, y := 0)
{
MouseMove, x, y
Click
}
Comments