AutoHotkey-我的实例解释

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





附件列表