2014-12-04 30 views
1

我試圖檢測到Ctrl + V。然後,使Xbutton1充當輸入幾秒鐘,但我無法得到它的工作。如何在AHK中檢測Ctrl + V?

Transform, CtrlV, Chr, 3 
Input, OutputVar, L1 M 

XButton1:: 
    if OutputVar = CtrlV 
    { 
     SetTimer, SendEnter, 0 
     Sleep, 2000 
     SetTimer, SendEnter, Off 
    } 
    else 
    { 
     Send ^t 
    } 
Return 

SendEnter: 
    Send {Enter} 
Return 
+0

爲什麼不爲它定義一個熱鍵? '〜^ v :: msgbox,你按下CTRL + V'代字符前綴保持原來的功能。 – MCL 2014-12-04 13:39:06

+0

感謝您的建議,但那不是我想要做的。 :) – user3736903 2014-12-04 15:03:37

+0

我認爲你被困在程序思維中,但使用熱鍵更多的是事件驅動。例如,您可以簡單地存儲按Ctrl + v時的時間:'^ v :: lastPaste:= A_TickCount'。然後,在激活'XButton1'後,您可以將該時間與當前時間進行比較;或者更好:使用'#If A_TickCount - lastPaste <2000'來清晰地顯示不同的狀態。你確定這不是你想要做的嗎? :) – MCL 2014-12-04 15:28:39

回答

1
~^v::lastPaste := A_TickCount ;stores counter when ctrl+v is pressed 
    Xbutton1:: 
     If A_TickCount - lastPaste < 2000 ;checks if 2 seconds gone after ctrl+v was clicked 
     { 
      Send, {Enter} ;sends enter 
      Return 
     } 
     else 
     { 
      Send, ^t ;sends ctrl+t 
      Return 
     } 
+0

CTRL + V在哪裏?如果您在解決方案上詳細闡述一下,這也會很好。 – MCL 2014-12-05 15:29:17

+0

對不起沒有看到我複製不是所有的腳本:)。現在完成。它非常簡單,我只是做了你的建議。 – user3736903 2014-12-06 12:30:41

+0

@ user3736903不,你沒有。你只粘貼了整個代碼,但沒有添加任何解釋。即使是一條小小的單線。現在,您的答案以非常低的質量排隊,因此可能會被刪除。請重新編輯您的問題並添加至少一行解釋。 – trejder 2014-12-06 13:21:53

相關問題