2015-11-03 83 views
0

這是什麼問題?AutoHotKey如果語句不起作用

if A_OSVersion = WIN_7 or A_OSVersion = WIN_XP 
    { 
    MsgBox, Win7 or XP 
} else { 
    if WinActive("ahk_exe Explorer") { 
    !f::!h 
    } 
} 

我們的目標是在資源管理器Alt + H鍵來代替按Alt + F,當我運行Windows 8,8.1或10,而我在Windows 7機器上測試,所以代碼不應該運行在所有,但熱鍵確實和MsgBox沒有。我是否需要重新排序才能使其正常工作?語法看起來很合適,但我一直在用AHKscript的語法很難。

讚賞評論!

回答

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 
+0

甜!我所需要做的就是將'not'放在'if'的其他部分,並將'Explorer'改爲'Explorer.exe',並且它像Linux一樣工作。謝謝! – Caleb

1
#if winActive("ahk_exe Explorer") and !(A_OSVersion = "WIN_7" or A_OSVersion = "WIN_XP") 
    !f::!h 
#if 

要正常腳本中做流你會需要使用熱鍵命令,但它不會被重映射,而是發送另一組鍵的熱鍵...