Dan*_*nor 78 dvorak autohotkey visual-studio-2008 visual-studio
我最近切换到Dvorak键盘布局作为一个实验.过渡中最困难的部分之一就是处理热键.大多数热键在设计时考虑到了QWERTY,更糟糕的是,热键似乎极其依赖于肌肉记忆.
我没有重新学习所有的热键,而是编写了一个自动键盘脚本,当将,或键与其他键一起按下时Ctrl,将Dvorak布局转换回QWERTY .除了Visual Studio '08,它在我尝试的任何地方都能很好地工作.在autohotkey可以翻译之前,似乎正在抓住击键.AltWin
为什么会发生这种情况,我该如何解决这个问题?
以下是我的脚本的摘录(从一开始):
; control + letter
^;::^z
^q::^x
^j::^c
^k::^v
更新:脚本在Win7上工作正常,ahk,vs08和新安装的coderush.我遇到麻烦的机器是运行vista.有关如何进一步诊断的任何想法?
更新2:该脚本适用于Vista和2010 beta 2.看起来只是vs 08 + vista.今晚要尝试重新安装vs08.
Dan*_*nor 166
啊哈!我已经明白了.如果ahk和目标应用程序没有在相同的权限(或用户)下运行,ahk将不会正确拦截/模拟键盘事件.就我而言,visual studio以管理员(提升)权限运行,而ahk脚本作为当前登录用户运行.
以下任何一个都解决了这个问题:
Him*_*u P 47
只想为OP自己找到的解决方案添加几点.
1)问题不在于AHK和VS以不同的权限运行- 它只是由在非管理模式下运行的脚本创建的热键无法在以管理模式运行的应用程序上运行,但如果它是没有问题的话反过来说.
2)不需要编译脚本,只需将autohotkey.exe设置为在管理模式下运行(这就是我所做的),或者创建特定脚本的快捷方式并将其设置为始终以管理模式运行.(顺便说一句,只是要指出,运行AHK脚本的编译版本没有性能提升,因为代码仍然被解释 - 它只是现在解释器嵌入在创建的可执行文件中)
这是由于称为用户界面权限隔离 (UIPI)的安全功能,它是用户帐户控制 (UAC) 的一部分。
常见问题解答中列出了几种解决方法:
常见的解决方法如下:
- 启用AutoHotkey 设置中的将“使用 UI 访问权限运行”添加到上下文菜单选项。通过从“开始”菜单重新运行 AutoHotkey 安装程序,可以启用或禁用此选项,而无需重新安装 AutoHotkey。启用后,右键单击脚本文件并选择Run with UI Access来启动脚本文件,或使用类似的命令行
"AutoHotkeyU32_UIA.exe" "Your script.ahk"(但包括完整路径)。- 以管理员身份运行脚本。请注意,这还会导致脚本启动的任何程序以管理员身份运行,并且可能要求用户在启动脚本时接受批准提示。
- 禁用本地安全策略“以管理员批准模式运行所有管理员”(不推荐)。
- 完全禁用UAC。不建议这样做,并且在 Windows 8 或更高版本上不可行。
我通常不建议以管理员身份运行脚本来解决此问题,因为它会产生意外或不需要的副作用。例如,脚本启动时使用的任何程序Run也将以管理员身份运行。该脚本还将对各种文件夹(例如 Program Files)拥有不必要的写入权限。一些糟糕的代码(从某处复制粘贴的恶意代码,或者有错误的代码)可能会以这种方式造成更大的损害。
当然,我也不推荐最后两种选择。只剩下Run with UI Access,可以按照上面的描述启用和使用它。
| 归档时间: | 
 | 
| 查看次数: | 6391 次 | 
| 最近记录: |