ฉันจะใช้แป้นพิมพ์เพื่อจำลองการเลื่อนเมาส์วีลด้วย AutoHotkey ได้อย่างไร


13

ฉันกำลังมองหาวิธีการเลื่อนด้วยแป้นพิมพ์โดยใช้ AutoHotkey มันจะดีมากถ้าฉันสามารถปรับความเร็วในการเลื่อนได้

คำตอบ:


13

คุณสามารถใช้MouseClickฟังก์ชั่นเพื่อจำลองล้อเมาส์ นี่คือตัวอย่างสคริปต์ที่ให้คุณเลื่อนโดยกดปุ่ม CapsLock ค้างไว้แล้วกด 'w' เพื่อเลื่อนขึ้นหรือลงเพื่อเลื่อนลง:

CapsLock & w::
 MouseClick,WheelUp,,,10,0,D,R
return

CapsLock & s::
 MouseClick,WheelDown,,,10,0,D,R
return

คุณสามารถทำให้มันเร็วขึ้นโดยเปลี่ยน10เป็นค่าที่มากขึ้น มันคือจำนวนของ "detents" ที่คุณต้องการให้ล้อรถเลื่อนดู

นอกจากนี้ยังมีสคริปต์ที่ autohotkey.comซึ่งตั้งค่าปุ่มเมาส์และการเคลื่อนไหวทั้งหมดบน NumPad แม้ว่าฉันจะไม่ได้ลองก็ตาม


ฉันต้องการกำหนดคำสั่งนี้ให้กับคีย์: ctrl+alt+upสำหรับการเลื่อนขึ้นและctrl+alt+downสำหรับการเลื่อนลง แต่ไม่มีอะไรเกิดขึ้นการเลื่อนไม่ทำงาน กรุณาช่วยด้วยขอบคุณ
IGRACH

1
คำตอบที่ดีมาก
saeed arab sheybani

2

นี่คือสคริปต์ที่ฉันเพิ่งทำไป กด 0 และขึ้นหรือลงแป้นลูกศรเพื่อใช้งาน หากคุณไม่มี numpad บนคอมพิวเตอร์คุณสามารถปรับแต่งปุ่มทั้งสองได้ตามที่เห็นสมควร มันทำงานเพื่อให้คุณสามารถกด 0 และปุ่มลูกศรและเลื่อนความเร็วอย่างต่อเนื่อง อาจดีกว่าล้อเลื่อนของตัวเอง?

0 & Up::
Loop
{
Send {WheelUp}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
  Break
}
Return

0 & Down::
Loop
{
Send {WheelDown}
GetKeyState, T, Down
If T=U ; U is a state for up, D is a state for down
  Break
}
Return

1

ปุ่มลัดของ Wheel Mouse [Windows NT / 2000 / XP หรือใหม่กว่า]

องว่าไฟเมื่อเปลี่ยนล้อเมาส์ได้รับการสนับสนุนผ่านทางชื่อคีย์WheelDownและWheelUp WheelLeft และ WheelRight ยังรองรับใน v1.0.48 + แต่ไม่มีผลต่อระบบปฏิบัติการรุ่นเก่ากว่า Windows Vista นี่คือตัวอย่างของปุ่มลัดของวงล้อเมาส์:

MButton & WheelDown::MsgBox You turned the mouse wheel down while holding down the middle button.
^!WheelUp::MsgBox You rotated the wheel up while holding down Control+Alt.

ใน v1.0.43.03 + ตัวแปรในตัวA_EventInfoมีจำนวนเงินที่ล้อหมุนซึ่งโดยทั่วไปคือ 1 อย่างไรก็ตาม A_EventInfo อาจมากกว่าหรือน้อยกว่า 1 ภายใต้สถานการณ์ต่อไปนี้:

  • หากฮาร์ดแวร์เมาส์รายงานระยะทางน้อยกว่าหนึ่งรอย A_EventInfo อาจมี 0
  • หากล้อหมุนเร็ว (ขึ้นอยู่กับประเภทของเมาส์) A_EventInfo อาจมากกว่า 1 ปุ่มลัดเช่นนี้สามารถช่วยวิเคราะห์เมาส์ของคุณได้: ~WheelDown::ToolTip %A_EventInfo%

ปุ่มลัดที่มีประโยชน์ที่สุดสำหรับล้อเลื่อนของเมาส์นั้นเกี่ยวข้องกับโหมดอื่นในการเลื่อนข้อความของหน้าต่าง ตัวอย่างเช่นปุ่มลัดคู่ต่อไปนี้เลื่อนตามแนวนอนแทนที่จะเป็นแนวตั้งเมื่อคุณหมุนวงล้อในขณะที่กดปุ่มควบคุมค้างไว้:

~LControl & WheelUp::  ; Scroll left.  
ControlGetFocus, fcontrol, A  
Loop 2  ; <-- Increase this value to scroll faster.  
    SendMessage, 0x114, 0, 0, %fcontrol%, A  ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINELEFT.  
return  

~LControl & WheelDown::  ; Scroll right.  
ControlGetFocus, fcontrol, A  
Loop 2  ; <-- Increase this value to scroll faster.  
    SendMessage, 0x114, 1, 0, %fcontrol%, A  ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINERIGHT.  
return  

ท้ายที่สุดเนื่องจากปุ่มลัดของล้อเลื่อนของเมาส์จะสร้างเฉพาะเหตุการณ์ที่ไม่เกิดขึ้น (ไม่เคยเกิดเหตุการณ์) จึงไม่สามารถใช้เป็นปุ่มลัดที่สำคัญได้

[ที่มา: ที่นี่ ]


0

ฉันแนะนำวิธีแก้ปัญหาจาก http://lifehacker.com/5626708/use-autohotkey-to-scroll-backwards-in-the-command-prompt-by-keyboard

ส่วนตัวผมชอบใช้ปุ่ม LWin เป็นตัวดัดแปลง (เพื่อหลีกเลี่ยงการชนกับการผูกกุญแจ Emacs):

LWin & PgUp ::
  ส่ง {WheelUp}
กลับ

LWin & PgDn ::
  ส่ง {WheelDown}
กลับ

โซลูชันนี้แตกต่างจากโซลูชันyhw42ที่เข้าใจง่ายและใช้การตั้งค่ามาตรฐานของ Windows สำหรับการเลื่อน (ความเร็วในการเลื่อน)

หมายเหตุเทคนิคนี้มีประโยชน์สำหรับโน้ตบุ๊ก (เนื่องจากทัชแพดอาจไร้ประโยชน์สำหรับผู้ใช้บางคน) และสำหรับผู้ใช้ที่ไม่ชอบเมาส์ เหตุการณ์เมาส์ส่งไปยังองค์ประกอบ GUI ที่ใช้งานดังนั้นคุณต้องมีตำแหน่งเมาส์ที่เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.