为什么 notepad++ 阻止了我的自动热键快捷键?

为什么 notepad++ 阻止了我的自动热键快捷键?

我在 autohotkey 脚本中定义了一系列键盘快捷键。目前,当 notepad++ 获得焦点时,这些快捷键都不起作用。

脚本照常加载。键盘快捷键(主要是用于移动窗口)在任何其他窗口上都能完美运行,但如果 notepad++ 窗口处于焦点状态,它们就不起作用。同时,所有常规窗口快捷键都能正常工作,即使 notepad++ 处于焦点状态。因此,这是 notepad++ 和 autohotkey 之间的特定问题。

我在脚本中定义的快捷键与记事本的任何标准键盘快捷键都不冲突。有人知道发生了什么吗?

使用 Windows 7、notepad++ v5.8.1、autohotkey v1.0.48.03

答案1

对我来说,重新启动 Notepad++ 就足够了,所以先尝试一下。

答案2

我认为 autohotkey 将无法加载键盘钩子,除非您以管理员身份运行它。如果是这种情况,当另一个应用程序(notepad++ 或其他)获得焦点时,您的按键将不起作用。

(我在 autohotkey 和 winamp 上遇到过这种情况(尽管是间歇性的))

答案3

令人尴尬的是,我重启了电脑,现在一切恢复正常。我必须先学会这样做,然后才能在这里提问……

答案4

我将 Notepad++ 设置为始终以管理员身份运行,当 NP++ 获得焦点时,这似乎会干扰 AHK。

将此添加到我的脚本顶部解决了该问题。它允许您以任何方式加载脚本,然后如果尚未加载,它将以管理员身份重新启动它。

#SingleInstance, Force
SetWorkingDir %A_ScriptDir%
if (not A_IsAdmin) {
    Run *RunAs "%A_ScriptFullPath%"
}

编辑:使用普通#SingleInstance, Force脚本,您只需再次打开它即可覆盖它。

使用此脚本,要重新加载,您必须右键单击并以管理员身份运行它。

  1. 以非管理员身份加载脚本
  2. 脚本以管理员身份重新启动
  3. 用户双击脚本重新加载
  4. 该脚本尝试以非管理员身份加载,但无法终止具有管理员权限的脚本,因此无法启动。

重新加载脚本的其他方法应该可以正常工作。

相关内容