控制流程

在 AHK 中,仍然可以使用跟其他编程语言类似的控制流程

条件语句

比如下列程序,按下 Ctrl + Alt + N,如果记事本没打开,就打开记事本并输入 Hello, world,如果记事本本身就是打开的,激活记事本窗口并输入 Hello, world。

^!n::  ; Ctrl+Alt+N
if (not WinExist("ahk_class Notepad")) {
  Run Notepad
  WinWait ahk_class Notepad
} else {
  WinActivate ahk_class Notepad
}
Send Hello`, world!
return

#If 指令

也可直接通过 #If 指令进行条件判断:

#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}     ; 在任务栏上滚动滚轮: 增加/减小音量.
WheelDown::Send {Volume_Down} ;
MouseIsOver(WinTitle) {
  MouseGetPos,,, Win
  return WinExist(WinTitle . " ahk_id " . Win)
}

上面的程序,将鼠标滑到任务栏,使用滚轮滑动可以改变音量大小

#IfWinExist 指令

通过 #IfWinExist 可以判断程序是否正在运行中:

#IfWinExist, ahk_class Notepad
#c::MsgBox 记事本正在运行.
#IfWinExist
#c::MsgBox 记事本没有运行.

对应的,#IfWinNotExist 判断程序是否没有运行

#IfWinActive 指令

通过 #IfWinActive 可以判断当前程序是否为指定程序:

#IfWinActive, ahk_class Notepad
#c::MsgBox 你在记事本中按下了 Win-C 组合键.
#IfWinActive
#c::MsgBox 你在非记事本程序中按下了 Win-C .

对应的,#IfWinNotActive 判断当前程序是否没有激活

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress