2014-12-04 93 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