- 基础知识:
#代表win,+代表shift,^代表Ctrl,!代表Alt,LButton和RButton分别代表左右按键,~表示按住后面的按键(~LButton表示按住左键)。
其他按键可以直接用原字符,组合按键大多数可以直接相连(#V表示win+v),多字符的按键相连时可以用{}区分字符(!{Tab}表示Alt+Tab),鼠标之间组合可以使用&(~LButton & RButton 按住左右键(更确切的说是按住左键的同时,按下右键。))
注释是;在行首
- 组合按键运行应用
按下Win+V运行Emeditor:
#v::
run "D:\Program Files\EmEditor\EmEditor.exe"
return
run的效果就相当于在运行里面执行的效果,可以是exe,可以是打开文件夹。
来个鼠标的:
按住左右键(更确切的说是按住左键的同时,按下右键。)运行VistaSwitcher
~LButton&RButton::
run "D:\Program Files\VistaSwitcher\vswitch64.exe"
return
- 组合键相互替换
windows有一些默认的组合键很常用,但是位置比较着急。可以用组合键替换之。
用win+w来替换alt+t,(alt+t在windows中是预览任务栏的功能)
#w::
send #t
return
就一个send命令!
- 进阶一点点:
显然如此简单的功能低估了autohotkey,autohotkey也可以有变量有函数有复杂语句:
if(){}
elseif(){}
else{}
是最常用的,注意判断是=,而非==
还可以声明变量,如果是全局的,在ahk文件的最上面声明最好。
- 操作Windows窗口
这个地方用到的api比较多,推荐《Autohotkey-命令列表》
让当前窗口最小化:
#M::
WinMinimize A
;WinMinimize最小化命令,A表示当前窗口
return
通过变量让所有窗口最小化或者撤销:
wind =0
;win+d to Minimize all windows and undo
#D::
;MsgBox,%wind%
;use the variable to decide minimize or undo
if(wind =0)
{
WinMinimizeAll
wind =1
}
elseif(wind =1)
{
WinMinimizeAllUndo
wind =0
}
return
MsgBox是弹出提示框,后面的是字符,带%%就可以表示变量了。
更复杂一点的,操作指定的窗口:如果没有这个窗口,则打开exe。如果有,且不再前台的话,激活到前台。如果在前台,关闭之。
注意一下的Win操作,都是对窗口标题的检测!!与后面的进程操作不一样。
;win+X to run SpeedCrunch
#X::
IfWinActive,SpeedCrunch
WinClose,SpeedCrunch
Else
IfWinExist,SpeedCrunch
WinActivate,SpeedCrunch
Else
Run"C:\Program Files\SpeedCrunch\speedcrunch.exe"
Return
- 操作进程
现实中有些windows程序是没有窗口标题,或者窗口标题变化,有的甚至没有窗口,这时候需要通过进程来来操作。
通过进程打开evernote,并实现前台后台切换。
;;win+] to run evernote and hide
Process,Exist,Evernote.exe
if(ErrorLevel=0)
{
Run"D:\Program Files\Evernote\Evernote\Evernote.exe"
}
else
{
;there is to show how to use pid to active and hide
IfWinNotActive ahk_pid %ErrorLevel%
Send^!b
;if evernote is not in front, use its default shortcut key
else
WinClose ahk_pid %ErrorLevel%
;if it is in front, close it
}
通过Process, Exist 得到是进程pid,存在ErrorLevel中,没有则为0。
可以直接去看我的github。
附件列表