반응형
오토핫키 공식포럼 발최
https://www.autohotkey.com/boards/viewtopic.php?t=62607
#NoEnv
SetBatchLines, -1
ToolTipText := "툴팁"
SetTimer, Timer2, 10
FFToolTip()
return
ExitApp
f1:: ;종료
SetTimer, Timer2, Off
return
Timer1:
ToolTip, %ToolTipText%
Return
Timer2:
FFToolTip(ToolTipText)
Return
Esc::ExitApp
return
FFToolTip(Text:="", X:="", Y:="", WhichToolTip:=1) {
static ID := [], Xo, Yo, W, H, SavedText
, PID := DllCall("GetCurrentProcessId")
, _ := VarSetCapacity(Point, 8)
if (Text = "") { ; Hide the tooltip
ToolTip, , , , WhichToolTip
ID.Delete(WhichToolTip)
} else if not ID[WhichToolTip] { ; First call
ToolTip, %Text%, X, Y, WhichToolTip
ID[WhichToolTip] := WinExist("ahk_class tooltips_class32 ahk_pid " PID)
WinGetPos, , , W, H, % "ahk_id " ID[WhichToolTip]
SavedText := Text
} else if (Text != SavedText) { ; The tooltip text changed
ToolTip, %Text%, X, Y, WhichToolTip
WinGetPos, , , W, H, % "ahk_id " ID[WhichToolTip]
SavedText := Text
} else { ; The tooltip is being repositioned
if (Flag := X = "" || Y = "") {
DllCall("GetCursorPos", "Ptr", &Point, "Int")
MouseX := NumGet(Point, 0, "Int")
MouseY := NumGet(Point, 4, "Int")
}
;
; Convert input coordinates to screen coordinates
;
if (A_CoordModeToolTip = "Window") {
WinGetPos, WinX, WinY, , , A
X := X = "" ? MouseX + 16 : X + WinX
Y := Y = "" ? MouseY + 16 : Y + WinY
} else if (A_CoordModeToolTip = "Client") {
NumPut(X, Point, 0, "Int"), NumPut(Y, Point, 4, "Int")
DllCall("ClientToScreen", "Ptr", WinExist("A"), "Ptr", &Point, "Int")
X := X = "" ? MouseX + 16 : NumGet(Point, 0, "Int")
Y := Y = "" ? MouseY + 16 : NumGet(Point, 4, "Int")
} else { ; A_CoordModeToolTip = "Screen"
X := X = "" ? MouseX + 16 : X
Y := Y = "" ? MouseY + 16 : Y
}
;
; Deal with the bottom and right edges of the screen
;
if Flag {
X := X + W >= A_ScreenWidth ? A_ScreenWidth - W - 1 : X
Y := Y + H >= A_ScreenHeight ? A_ScreenHeight - H - 1 : Y
if (MouseX >= X && MouseX <= X + W && MouseY >= Y && MouseY <= Y + H)
X := MouseX - W - 3, Y := MouseY - H - 3
}
;
; If necessary, store the coordinates and move the tooltip window
;
if (X != Xo || Y != Yo) {
Xo := X, Yo := Y
DllCall("MoveWindow", "Ptr", ID[WhichToolTip], "Int", X, "Int", Y, "Int", W, "Int", H, "Int", false, "Int")
}
}
}
반응형
'오토핫키 > 오토핫키 스크립트' 카테고리의 다른 글
오토핫키(AutoHotkey) 광학 문자 인식(OCR) - UWP API 2배 빠름 (0) | 2024.05.26 |
---|---|
오토핫키(AutoHotkey) Listview 특정 column 클릭시 다른 이벤트 처리 (0) | 2024.05.26 |
오토핫키(AutoHotkey) 로그인 인증 - 보안문자 (0) | 2024.05.18 |
오토핫키(AutoHotkey) Listview 배경색상 넣기 (Class_LV_Colors-master) (0) | 2024.05.14 |
오토핫키(AutoHotkey) 하드인증 스크립트 (0) | 2024.05.10 |