Autohotkey 双击SHIFT键,后跟字母

Autohotkey 双击SHIFT键,后跟字母,autohotkey,Autohotkey,我希望能够双击SHIFT键,然后按一个字母来激活操作。有人能帮忙吗?如果能够双击任意一个SHIFT键,那就太好了 类似于 +然后d 做点什么 返回 ~上移:: 如果(A_ThisHotkey==A_Prior Hotkey&&A_TimesIncePrior Hotkey

我希望能够双击SHIFT键,然后按一个字母来激活操作。有人能帮忙吗?如果能够双击任意一个SHIFT键,那就太好了

类似于

+然后d 做点什么 返回

~上移::
如果(A_ThisHotkey==A_Prior Hotkey&&A_TimesIncePrior Hotkey<500)
{
双移位:=真
睡眠,2000年
双移位:=假
}
返回
; 双击Shift键后两秒钟内按下一个键,激活一个操作:
#If(双_移位)
a::MsgBox,此宏尚未启用。联系IT部门寻求建议。
b::FormatTime,CurrentDateTime,MM/dd/yy-hh:mmtt
SendInput%CurrentDateTime%
c::MsgBox,此宏尚未启用。联系IT部门寻求建议。
返回
~上移::
如果(A_ThisHotkey==A_Prior Hotkey&&A_TimesIncePrior Hotkey<500)
{
双移位:=真
工具提示,双击SHIFT;如果不想显示工具提示,请删除此行
睡眠,2000年
双移位:=假
工具提示;如果不希望显示工具提示,请删除此行
}
返回
; 双击Shift键后两秒钟内按下一个键,激活一个操作:
#If(双_移位)
a::MsgBox,双移位+a
b::MsgBox,双_移位+b
#如果

按下换档按钮时显示消息框

~LShift::ShiftPressed()
~RShift::ShiftPressed()
$d::DPressed()

ShiftPressed()
{
  global t1,t2
  t1 := t2
  t2 := A_TickCount
}

DPressed()
{
  global t1,t2
  if (A_TickCount < t1 + 1000) && (A_TickCount < t2 + 1000)
     MsgBox Shift Shift D Pressed
  else
    sendinput d
}
~LShift::ShiftPressed()
~RShift::ShiftPressed()
$d::DPressed()
ShiftPressed()
{
全局t1,t2
t1:=t2
t2:=A_计数
}
D压力()
{
全局t1,t2
如果(A_TickCount
内置变量和工具提示的出色使用!这很有效。我遇到了一个问题,如果你连续两次键入大写字母,就会触发另一个。这不是。谢谢两个问题;1.您将如何对此进行添加,以便左双移位或右双移位将触发它。2.当您双击shift键或连续两次键入任何大写字母时,工具提示将弹出。有没有办法不让那个消息弹出?啊。非常感谢。我现在有以下内容,但无法使实际插入日期生效。。。只有一个味精盒。你知道密码有什么问题吗?我不知道如何在添加到我原来帖子的注释中插入代码。谢谢。我已经让它工作,以上是我编辑的脚本。你能帮我解决一个问题吗?如果您在两次移位之间键入一个字母,则移位将计数。如果在SHIFT和SHIFT之间键入一个字母,是否有办法使激活宏无效。我想你会称之为排他性移位,移位。在移位-移位序列之间键入的字母总是使宏无效(双移位)。这太棒了!非常感谢。如果我想在按下Shift/Shift后添加其他操作,然后说一个不同的字母,如“f”,是否有一种优雅的方式来扩展此操作?我想这将取决于其他操作的细节。您可以将参数传递给函数。如果shift,shift,d表示做10次某事,shift,shift,f表示做100次,我将定义两个热键:
$d::DoSomething(10,“d”)
$f::DoSomething(100,“f”)
。然后定义类似于
DoSomething(count,mykey)
的函数,让热键执行多个命令,将第一行放在热键定义下面,并将最后一行作为返回。见和。
~Shift Up::
If (A_ThisHotkey == A_PriorHotkey && A_TimeSincePriorHotkey < 500)
{
    Double_SHIFT := true
    ToolTip, Double_SHIFT     ; remove this line, if you don't want a tooltip displayed
    Sleep, 2000
    Double_SHIFT := false
    ToolTip                   ; remove this line, if you don't want a tooltip displayed
}
return

; Press a key within two seconds after double tapping the Shift key, to activate an action:

#If (Double_SHIFT)

    a:: MsgBox, Double_SHIFT + a

    b:: MsgBox, Double_SHIFT + b

#If
~LShift::ShiftPressed()
~RShift::ShiftPressed()
$d::DPressed()

ShiftPressed()
{
  global t1,t2
  t1 := t2
  t2 := A_TickCount
}

DPressed()
{
  global t1,t2
  if (A_TickCount < t1 + 1000) && (A_TickCount < t2 + 1000)
     MsgBox Shift Shift D Pressed
  else
    sendinput d
}