这有什么问题?
if A_OSVersion = WIN_7 or A_OSVersion = WIN_XP
{
MsgBox, Win7 or XP
} else {
if WinActive("ahk_exe Explorer") {
!f::!h
}
}
目标是在我运行Windows 8,8.1或10时在资源管理器中用Alt + H替换Alt + F,并且我在Windows 7计算机上进行测试,因此代码不应该是完全运行,但热键确实运行,MsgBox
没有。我是否需要重新排序以使其正常工作?语法看起来对我来说,但我对AHKscript的语法很难。
赞赏我的评论!
答案 0 :(得分:1)
此
!f::!h
不是命令,它是密钥重映射,因此隐式包含return
。您不能在可执行文件中使用它。有关详细信息,请参阅下面的http://ahkscript.org/docs/misc/Remap.htm#Remarks。
你不想在应该执行的行之间某处返回,是吗。
(这主要是我的回答的副本here)
对于context-sensitive个热键,请使用预处理程序指令:
#if (A_OSVersion = "WIN_7" or A_OSVersion = "WIN_XP") and not winActive("ahk_exe Explorer")
!f::!h
#if
答案 1 :(得分:1)
#if winActive("ahk_exe Explorer") and !(A_OSVersion = "WIN_7" or A_OSVersion = "WIN_XP")
!f::!h
#if
要在正常的脚本流程中执行此操作,您需要使用热键命令,但它不会是重映射,而是发送另一组键的热键......