【问题标题】:How to disable ctrl-n with AutoHotkey?如何使用 AutoHotkey 禁用 ctrl-n?
【发布时间】:2018-02-19 06:01:17
【问题描述】:

我正在尝试运行信息亭模式浏览器,并且我想禁用 Ctrl-N 打开一个新窗口。我不想在 JS 中执行此操作(我只希望在 kiosk 模式下禁用 Ctrl-N,并且无论如何在 Chrome 中都不可能) .

我刚刚发现 AutoHotkey 作为一种可能的解决方案,但我是一个完全的新手。我写了这个,但它不起作用:

^n::return
RunWait C:\Program Files\Internet Explorer\iexplore.exe
ExitApp

使用 SciTE 调试器,它永远不会从执行第一行返回。我知道第一行会忽略 Ctrl-N,但似乎我完全误解了如何处理热键。如果我注释掉第一行,IE 会按预期启动。

谁能帮忙解释一下我需要在这里做什么?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    来自AHK docs

    脚本加载后,开始在第一行执行, 继续直到返回、退出、热键/热字符串标签或 遇到脚本的物理结束(以先到者为准)。 脚本的顶部部分称为自动执行 部分。

    因此,如果您希望在脚本启动时执行一次,则必须将其放在脚本的最顶部,然后再定义热键/热字符串、子例程或使用 Return 或 @987654323 @。或者,您可以定义一个子例程,然后在自动执行部分中调用该子例程。

    到你的代码

    在脚本中定义一个热键然后立即终止 (ExitApp) 几乎没有意义。一旦脚本不再运行,它的热键就没有任何作用。

    编辑

    根据您的新评论,让脚本一直运行并且只将您的热键绑定到 IE 的窗口更合理:

    #IfWinActive ahk_exe iexplore.exe
    ^n::return
    

    确实没有理由与 IE 一起启动/终止您的脚本。简单的 AHK 脚本的内存消耗是微不足道的。但是,当您想启动 IE 时,您将获得不启动脚本的巨大优势。这在外部程序启动 IE 时特别有用(例如,您打开 PDF 中的链接)。我建议你把这个脚本自动启动。

    【讨论】:

    • 啊,谢谢。我知道我很愚蠢。我想要的是在 RunWait 期间热键映射处于活动状态,但仅在浏览器关闭之前。 ExitApp 应该在 RunWait 返回后生效。
    • 再次感谢。但是,我不希望它对所有 IE 窗口都处于活动状态,只是当我在 kiosk 模式下使用 IE 作为 UI 运行特定应用程序时。当我退出信息亭模式会话时,我想恢复正常行为。
    • MCL - 很好,完整的答案!
    • @user1636349 您可以允许 AHK 仅在当前窗口具有特定标题时运行。这会有帮助吗?
    • 否;浏览器在信息亭模式下全屏显示。但由于 MCL 早期的回答,我设法找出了一个有效的脚本。
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多