【问题标题】:Autohotkey autocomplete limit to certain windows某些窗口的 Autohotkey 自动完成限制
【发布时间】:2013-07-30 15:49:30
【问题描述】:

我在这里尝试使用 Autohotkey 自动完成脚本:http://www.autohotkey.com/board/topic/60998-autocomplete-updated-26713/,但仅限于某些窗口。将整个脚本包含在#IfWinActive 中似乎不起作用。我真的很喜欢这个完成脚本,但不希望它出现在所有地方。有没有办法将自动完成限制在特定的窗口?

【问题讨论】:

  • 请详细说明您的问题。脚本是如何工作的? #IfWinActive 仅适用于热键和热字串。把它放在一个复杂的脚本前面肯定几乎总是会失败。你看过源码了吗?你的发现是什么?
  • 我对 AHK 世界有点陌生,所以请多多包涵。该脚本使用一个主单词表,它与当前的击键进行比较以建议匹配项。当然,这对于某些应用程序来说非常有用。但是当我尝试在一些无关紧要的地方(比如开始 -> 运行)输入时,这会变得很突兀。
  • 你看过源代码了吗?你的发现是什么?

标签: autocomplete autohotkey


【解决方案1】:

对源代码的快速研究表明,每次按键都会调用Suggest 子例程。这似乎是检查活动窗口的好地方。我在源代码中实现了最小的更改,您可以查看here
首先,您必须定义要从功能中排除的窗口,我通过定义一个窗口组来实现这一点:

GroupAdd, excludedWins, ahk_class CabinetWClass ; windows explorer
GroupAdd, excludedWins, ahk_class DV2ControlHost ; start menu search bar
GroupAdd, excludedWins, ahk_class ConsoleWindowClass ; console

请注意,我使用的是 Windows 7;或许,windows 在其他版本中还有其他标识符。

其次,您需要告诉Suggest 子例程忽略这些窗口:

Suggest:
IfWinActive, ahk_group excludedWins
{
        return
}

好像可以,但是我只是测试的很肤浅,并没有调查源代码的依赖关系。让我知道它是如何为您工作的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多