【问题标题】:AHK - # (windows) hotkey stay in pressed state at first useAHK - # (windows) 热键在第一次使用时保持按下状态
【发布时间】:2013-08-15 10:40:51
【问题描述】:

我编写了一个简单的脚本,可以在 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 函数有问题。

我尝试了很多修改,但不起作用。

谁能帮帮我?

【问题讨论】:

  • 请详细描述你的脚本应该做什么。具体来说,提供url 的内容并描述生成的adminURL 的外观。无论如何,您是否尝试过使用#a UP::,在释放时触发热键?
  • 我也会拆分Send ^t%adminURL%/administrator{enter} 行。喜欢这个Send, ^tSleep, 200SendInput,%adminURL%/administrator{enter}。在发送命令之前,您还应该检查 Firefox 是否是活动窗口。
  • @MCL #a UP:: 解决方案有效,但有一个副作用,它激活了本机 Windows 按钮功能

标签: autohotkey


【解决方案1】:

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

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

#a UP:: 相比,这不会让 按键在首先释放A 时涓涓细流。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多