ahk 2.0 코드입니다.
PC로 웹툰을 볼 때, 마우스 휠 굴리긴 귀찮고, 방향키 or pgup pgdn은, 너무 많이 내려가길래.
키보드 방향키(위/아래)를 누르면 마우스 휠 굴리는 것과 같은 효과를 주도록 만들었습니다.
창 제목을 감지했을 때만 작동하며, 그 외에는 본연의 키기능이됩니다.
+와 -키로 속도 조절이 가능합니다.
키를 누를 때 마다 툴팁으로 현재 state를 알려줍니다.
#Requires AutoHotkey v2.0
#SingleInstance Force
global scrollDelay := 30
global minDelay := 5
global maxDelay := 200
global isScrolling := false
global tipX := 10, tipY := 10
ShowStatus(extra := "") {
global scrollDelay, isScrolling, tipX, tipY
state := isScrolling ? "SCROLLING" : "IDLE"
msg := "Delay(ms): " scrollDelay " | State: " state
if (extra != "")
msg .= " | " extra
ToolTip msg, tipX, tipY
}
AdjustSpeed(delta, keyLabel := "") {
global scrollDelay, minDelay, maxDelay
scrollDelay := Clamp(scrollDelay + delta, minDelay, maxDelay)
ShowStatus("Speed " keyLabel)
}
Clamp(v, lo, hi) => v < lo ? lo : v > hi ? hi : v
; =========================
; 네이버 웹툰일 때만 동작
; =========================
; 1) 크롬/엣지 창이면서
; 2) 창 제목에 "웹툰" 또는 "WEBTOON" 또는 "네이버 웹툰"이 포함될 때
IsWebtoonActive() {
title := WinGetTitle("A")
proc := WinGetProcessName("A")
if !(proc ~= "i)^(chrome\.exe|msedge\.exe)$")
return false
; 제목 패턴은 필요하면 여기만 조정하면 됨
return (title ~= "i)(네이버\s*웹툰|WEBTOON|웹툰)")
}
#HotIf IsWebtoonActive()
Down:: {
global isScrolling, scrollDelay
isScrolling := true
ShowStatus("Down pressed")
while GetKeyState("Down", "P") {
Send "{WheelDown}"
Sleep scrollDelay
}
isScrolling := false
ShowStatus("Down released")
}
Up:: {
global isScrolling, scrollDelay
isScrolling := true
ShowStatus("Up pressed")
while GetKeyState("Up", "P") {
Send "{WheelUp}"
Sleep scrollDelay
}
isScrolling := false
ShowStatus("Up released")
}
NumpadAdd:: AdjustSpeed(-5, "+")
NumpadSub:: AdjustSpeed(+5, "-")
+:: AdjustSpeed(-5, "+")
-:: AdjustSpeed(+5, "-")
#HotIf
; =========================
; 여기 아래는 전역(항상) 동작 없음
; -> 웹툰이 아닐 땐 Down 키 원래 기능 그대로
; =========================
ShowStatus("Ready (Webtoon-only)")
;이 코드는 GPT5.2로 사실상 원샷에 제작되었습니다.