นี่คือสคริปต์ AutoHotKey ที่ฉันใช้ คุณเลื่อนโดยการกดปุ่มเล็ก ๆ ที่เหลือค้างไว้แล้วกลิ้งลูกบอลขึ้น / ลง อย่างไรก็ตามการคลิกปุ่มเล็ก ๆ ด้านซ้ายยังคงเป็น BACK มันยังสามารถเลื่อนไปทางซ้าย / ขวา แต่มันไวเกินไปสำหรับฉันดังนั้นมันจึงคอมเม้นท์ที่นี่ (บล็อกที่ขึ้นต้นด้วย;timesX := Abs(movedx) / 4
)
ผมพบว่ารุ่นเดิมที่
http://www.autohotkey.com/board/topic/30816-simulate-scroll-wheel-using-right-mouse-button/ ฉันโพสต์เวอร์ชันของฉันที่นั่นในฐานะคนอื่น 8923
$*XButton1::
Hotkey, $*XButton1 Up, XButton1up, off
;KeyWait, XButton1, T0.4
;If ErrorLevel = 1
;{
Hotkey, $*XButton1 Up, XButton1up, on
MouseGetPos, ox, oy
SetTimer, WatchTheMouse, 5
movedx := 0
movedy := 0
pixelsMoved := 0
; TrayTip, Scrolling started, Emulating scroll wheel
;}
;Else
; Send {XButton1}
return
XButton1up:
Hotkey, $*XButton1 Up, XButton1up, off
SetTimer, WatchTheMouse, off
;TrayTip
If (pixelsMoved = 0)
{
;The mouse was not moved, send the click event
; (May want to make it PGUP or something)
Send {XButton1}
Send {XButton1Up}
}
return
WatchTheMouse:
MouseGetPos, nx, ny
movedx := movedx+nx-ox
movedy := movedy+ny-oy
pixelsMoved := pixelsMoved + Abs(nx-ox) + Abs(ny-oy)
;timesX := Abs(movedx) / 4
;ControlGetFocus, control, A
;Loop, %timesX%
;{
; If (movedx > 0)
; {
; SendMessage, 0x114, 1, 0, %control%, A ; 0x114 is WM_HSCROLL
; movedx := movedx - 4
; }
; Else
; {
; SendMessage, 0x114, 0, 0, %control%, A ; 0x114 is WM_HSCROLL
; movedx := movedx + 4
; }
;}
timesY := Abs(movedy) / 4
Loop, %timesY%
{
If (movedy > 0)
{
Click WheelDown
movedy := movedy - 4
}
Else
{
Click WheelUp
movedy := movedy + 4
}
}
MouseMove ox, oy
return