Autohotkey `1 คีย์ลำดับ


0

ใน MSword ฉันต้องการตั้งค่า

`1

เป็นลำดับสำคัญเพื่อเรียกสคริปต์ แต่ฉันยังมีสคริปต์อื่น ๆ ใน MSword ด้วยปุ่มลัด

1

และลำดับคีย์

11    ; (one pressed twice fast)

รหัสจะเป็นเช่นนี้

; The following hotkeys work only if MS-WORD is the active window:
#If WinActive("ahk_exe WINWORD.EXE")    ; (1)

1::
if 1_presses > 0
{
    1_presses += 1
    SetTimer Key1, 300
    return
}
1_presses = 1
SetTimer Key1, 300
return

Key1:
SetTimer Key1, off
if 1_presses = 2
  SendInput, BYE
else
  SendInput, HELLOW
1_presses = 0
return

ฉันจะตั้งค่าทริกเกอร์ `1 keysequence 'ได้อย่างไรโดยไม่รบกวนกับปุ่มลัดอื่น

ขอบคุณขั้นสูง

คำตอบ:


1
#If WinActive("ahk_exe WINWORD.EXE") 

    ; SC029 is the scancode of the key "`"

    ; SC029::
    ; KeyWait, SC029
    ; return

    SC029 Up::
    Send {SC029}
    return

    ; press 1 while you're holding down the "`"-key, to send a
    SC029 & 1:: Send a

    1::
    ; press 1 in less than 300 ms after pressing the "`"-key, to send b
    If (A_PriorHotKey = "SC029 Up" AND A_TimeSincePriorHotkey < 300)
    {
        Send {BS}b
        return
    }
    ; otherwise:
    if 1_presses > 0
    {
        1_presses += 1
        SetTimer Key1, 300
        return
    }
    1_presses = 1
    SetTimer Key1, 300
    return

    Key1:
    SetTimer Key1, off
    if 1_presses = 2
      SendInput, BYE
    else
      SendInput, HELLOW
    1_presses = 0
    return

#If

ใช่ฉันหมายถึงกุญแจนั้น แต่รหัสด้านบนใช้งานไม่ได้ให้สมมุติว่าฉันไม่ต้องการแสดงกล่องข้อความเมื่อกด SC029 & amp; 1 ฉันวางสคริปต์ของคุณไว้ด้านบน แต่ไม่ทำอย่างนั้นมันแค่เรียกใช้สคริปต์ที่ใช้ 1 คีย์เป็นตัวกระตุ้นฉันหมายถึงมันพิมพ์ HELLOW
litu16

คุณไม่ต้องเรียกใช้สองสคริปต์ แน่นอนว่าสคริปต์อื่นรบกวน คัดลอกโค้ดข้างต้น (แก้ไข) ในหนึ่งสคริปต์และเรียกใช้ก่อนอื่นเป็นสคริปต์แบบสแตนด์อโลน
user3419297

สวัสดีผู้ใช้ 3419297 ฉันต้องรีบเร็วมาก 1 เพื่อรับ "a" มิฉะนั้นจะพิมพ์ ` HELLOW ฉันพยายามที่จะเปลี่ยน SetTimer Key1, 600 แต่ผลลัพธ์เดียวกันสคริปต์ไม่เสถียรใช่ไหม
litu16

ใช้งานได้ไหมถ้าคุณลบ 1 :: - ปุ่มลัด?
user3419297

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