Autohotkey การทำแผนที่ที่สมบูรณ์ของลูกศร


0

ฉันมีรหัสนี้โดยใช้ autohotkey (.ahk)

!k::SendInput,{UP}
!j::SendInput,{LEFT}
!æ::SendInput,{RIGHT}
!l::SendInput,{DOWN} 

ซึ่งแมปปุ่มลูกศรของฉันกับ j, k, l, æอย่างถูกต้อง (æคือปุ่ม; ปุ่มบนแป้นพิมพ์ภาษาอังกฤษ)

สิ่งนี้ทำงานได้อย่างมีเสน่ห์ยกเว้นความจริงที่ว่าฉันไม่สามารถถือ "ctrl + alt + j" ไม่ได้เพื่อไปยังคำถัดไปทางซ้ายเหมือนกับที่ฉันทำถ้าฉันใช้ "ctrl + arrowKeyLeft"

ฉันต้องการสิ่งนี้เพื่อทำงานกับกะเช่นกันเพื่อเน้นตัวอักษรไปทางซ้าย ตอนนี้ไม่มีอะไรเกิดขึ้นดังนั้นฉันคิดว่าฉันควรจะบอกสคริปต์ว่าควรเน้นข้อความใน "shift + alt + (j, k, l, æ)" อย่างใด แต่ฉันไม่สามารถหาวิธี ทำเช่นนี้เพียงแค่ ความช่วยเหลือชอบหรือข้อเสนอแนะเกี่ยวกับวิธีการทำเช่นนี้เป็นที่นิยมมาก ขอบคุณล่วงหน้า.


ฉันไม่แน่ใจว่าเป็นคำตอบที่ตรงไปตรงมาดีกว่าการทำซ้ำบรรทัดเหล่านั้นด้วย ctrl และ shift เพิ่ม โดยทั่วไปสิ่งที่คุณอธิบายไม่พึงประสงค์ - คนส่วนใหญ่ต้องการ ctrl + shift + Q เพื่อทำสิ่งที่แตกต่างจาก ctrl + (shift + Q) หรือ shift + (ctrl + Q)
NextInLine

@NextInLine มีลักษณะดังนี้: ^! j :: SendInput, {CTRL + LEFT} ฉันเดาใช่ไหม
Peterrr

อะไรแบบนั้น. ฉันไม่สามารถไปที่ไซต์ของ AutoHotKey ได้ในขณะนี้เพื่อตรวจสอบเอกสารของพวกเขา
NextInLine

คำตอบ:


0

ตามแนวความคิดในความคิดเห็นของ @ NextInLine บางอย่างเช่นด้านล่างอาจเป็นจุดเริ่มต้น แต่ดูเหมือนว่ามีธุรกิจตลก ๆ เกิดขึ้นกับ Windows และชุดคีย์เหล่านี้ดังนั้นสคริปต์ปัจจุบันจึงทำหน้าที่เหมือนการเลือกทั้งบรรทัดแทนที่จะเป็น ต่อคำ บางทีการทดสอบในระบบของคุณอาจส่งผลให้เกิดพฤติกรรมที่แตกต่างกัน

โดยพื้นฐานแล้วสคริปต์ทำดังนี้:

  1. ตรวจสอบว่าสถานะคีย์ของ Ctrl และ Alt เป็น True (กดลง)
  2. ถ้าเป็นจริงให้วนรหัสที่รวม 20 ครั้ง
  3. ภายในลูปรอให้กด j เป็นเวลา 2 วินาที หากกดแล้วให้ดำเนินการ {Alt up} {Ctrl down} {Shift down} {LEFT}
  4. ทำลายลูปหากตรวจไม่พบปุ่ม j

รหัส:

 ^!j::
 {
      if (GetKeyState("Ctrl", "P")) AND (GetKeyState("Alt", "P"))
        { 
        Loop, 20
        {
        KeyWait, j, D T2
        if (GetKeyState("j", "P"))
          {
          SendInput, {Alt up}{Ctrl down}{Shift down}{LEFT}
          }
        else
        {
          break
        }
        }
      SendInput, {Ctrl up}{Shift up}
      return
        }
    }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.