【问题标题】:AutoHotKey: Simulate winkey+s (universal search) by pressing ctrl+spaceAutoHotKey:按 ctrl+space 模拟 winkey+s(万能搜索)
【发布时间】:2014-04-17 01:28:30
【问题描述】:

理想情况下,我希望 ctrl+space 从 Windows (8.1) 中的任何位置调出“到处搜索”,如果它已经处于活动状态,也将其关闭(有一些东西比如#IfWinActive ...)。

到目前为止,我已经能够使用以下 AutoHotKey 脚本使 ctrl+space 模拟按下 winkey

<^Space::
KeyWait Ctrl
Send {RWin}
return

...但不是 winkey+s。无论如何,它感觉有点骇人听闻,因为它不会“在新闻中”启动。它只有在我释放 ctrl 键后才会启动。

附:如果我无法弄清楚这一点,我正在为一个好的第三方启动器应用程序提供建议


编辑:感谢罗伯特。结果如下:

<^Space::
SendInput {RWin Down}s{RWin Up}
return

【问题讨论】:

  • 您是否尝试通过按 ctrl+space 发送 win+s
  • 是的,完全正确。对不起,如果我不清楚。我正在考虑使用像 Launchy 这样的启动器,因为您可以指定热键,但如果我不需要,则不能。
  • 如果要直接触发热键,为什么要用KeyWait Ctrl
  • 因为我只是将这个东西一起破解,只要我删除该行,脚本就会停止工作。但由于某种原因,在删除该行并将Send {RWin} 更改为SendInput {RWin Down}s{RWin Up} 后,它运行良好。

标签: windows-8.1 autohotkey


【解决方案1】:

一种方法是通过:

 SendInput, {RWin Down}s{RWin Up}

【讨论】:

  • 谢谢!这正是我一直在寻找的。那里有随机逗号,但除此之外它是完美的。
  • @TheBlackKeys 这不是“随机”逗号。 AHK 命令中的逗号是参数的分隔符。命令和第一个参数之间的逗号是可选的,但可以帮助使代码更清晰。我相信如果参数始终用逗号分隔,则更容易阅读 AHK 代码,以便乍一看可以将命令与参数区分开来。例如,想象像这样的代码行 Run Run.exe... 逗号可以最大限度地减少混淆的可能性。
  • 哦,我明白了。感谢您清除它。我只关心干净的代码。
  • @MCL 感谢您的澄清。我想知道命令后的“,”
  • @TheBlackKeys 在这种情况下,请考虑在热键标签中缩进代码。也就是说,在您的热键中,将SendInput 缩进两个或三个空格。热键标签在技术上与子程序或函数相同。
【解决方案2】:

真的很简单:

^Space::SendInput, #s

【讨论】:

    猜你喜欢
    • 2013-07-28
    • 2016-04-18
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2020-11-13
    相关资源
    最近更新 更多