AHK - #(windows)热键在第一次使用时保持按下状态

时间:2013-08-15 10:40:52

标签: autohotkey

我写了一个简单的脚本,它在Firefox中打开了活跃的joomla站点管理员页面:

#a::
    Send, !d
    GetText(url)
    StringGetPos, localHost, url, localhost
    startPos := 7
    if(localhost)
        startPos := 17
    StringGetPos, pos, url, /,,startPos
    adminURL := SubStr(url,1,pos)
    Send ^t%adminURL%/administrator{enter}
return

GetText(ByRef txt)  ;copy the selected text to clipboard
{
    BlockInput, on
    prevClipboard = %clipboard%
    clipboard =
    Send, ^c
    BlockInput, off
    ClipWait, 2
    txt = %clipboard%
    txt:=RegExReplace(txt,"\x20{2,}"," ")
    clipboard = %prevClipboard%
}

首次使用(重启后)脚本会做一些奇怪的事情:

  • 注销
  • 打开命令行
  • 打开Windows资源管理器

当我发送输入时,看起来Windows键仍然处于按下状态。 首次使用后脚本正常工作。 我认为getText函数有问题。

我尝试了很多修改,但是没有用。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

让热键标签等到你释放每个键:

#a::
    KeyWait, LWin ; or RWin, as desired
    KeyWait, a ; just to make sure nothing interferes
    /*
        do stuff!
    */
return

#a UP::相反,当首先释放 A 时,这不会让 WIN 键按下。