|
當(dāng)一個blog連自己的主人都忘掉的時候,還能指望有別人來看么……這里似乎就是這樣的狀況。 不過我也確實想用這個blog了。比起放在開心網(wǎng)之類的地方,至少這里還可能給更多需要的人看到。
今天的主題是AutoHotkey。一個神一般的軟件。
如果想贊美或者推廣這個軟件的話,其實是有很大難度的,因為它根本就不讓人接近,沒有GUI界面,所有定義都需要手動敲代碼,代碼規(guī)則復(fù)雜但是HELP文檔只有英文可以看,所以這幾乎是一個專門給程序宅來用的軟件。
但是會用這個軟件的話,幾乎可以用它達(dá)到無限的功能。拿幾個最簡單的例子——也是我目前在用的來說。
一,多媒體鍵盤的程序運行熱鍵
;;Win+* 打開各種程序 #F3::run E:/Program Files/foobar2000/foobar2000.exe #F4::run E:/Program Files/Foxmail/Foxmail.exe
;;Ctrl+Alt+End關(guān)閉顯示器 ^!End::run E:/Program Files/關(guān)閉顯示器.exe
這是最簡單的,雖然不能定義真正的多媒體鍵盤上多出來的那些鍵(其實不一定,但我沒有研究過,等我研究一下),但是可以達(dá)到快速啟動應(yīng)用程序的作用
二,這里是調(diào)整音量的接口
;;Vista音量控制,Win+F10~F12 #F11::Send {Volume_Up 1} ; Raise the master volume by 1 interval (typically 5%). #F10::Send {Volume_Down 3} ; Lower the master volume by 3 intervals.這里如果不加參數(shù)的話就是默認(rèn)5 #F12::Send {Volume_Mute}
AutoHotkey還有庫功能,就像編程時調(diào)用的函數(shù)一樣。這里正好有一個例子,一些多媒體鍵盤(比如微軟)的驅(qū)動會接管mute功能,那么其實可以用到另外兩個庫去實現(xiàn)靜音
#F12:: COM_Init() ;調(diào)用COM庫 VA_SetMasterMute(!VA_GetMasterMute()) ;調(diào)用了VA庫里的函數(shù),Get Master Volume的值(0或1),再設(shè)成其非值 COM_Term() ;結(jié)束調(diào)用COM庫 return ;結(jié)束Win+F12的定義
三,羅技SetPoint這樣的軟件可以為指定程序載入特定profile,比如這個鍵平時是播放器,在word里就是粘貼——AutoHotkey也可以,而且更強大:
;;輸入Alt+S等同于回車在MSN中 #IfWinActive ahk_class IMWindowClass ;這段就是指定在MSN 2009的class窗口激活時生效 !s::Send {Enter} ;Alt+S等同于輸入回車 #IfWinActive ;結(jié)束對這個程序的特殊指定
于是這樣你就強奸了MSN 2009,微軟不做Alt+S發(fā)送,你用AutoHotkey來做。
四,鍵盤宏定義這樣的更是小菜一碟了
;;foobar2000 復(fù)制文件名 #IfWinActive ahk_class {E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8} #F1::Send !{Enter} {TAB}{TAB}{TAB}{RIGHT}{TAB}{TAB}{DOWN}{DOWN}{F2}{SHIFTDOWN}{LEFT}{LEFT}{LEFT}{LEFT}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{ESC}{ESC} #IfWinActive
街霸4快速出招:真空波動拳
#IfWinActive ahk_class STREET FIGHTER IV F2:: Send {DOWN down} sleep 16 Send {RIGHT down} sleep 16 Send {DOWN up} sleep 16 Send {RIGHT up} sleep 16 Send {DOWN down} sleep 16 Send {RIGHT down} sleep 16 Send {DOWN up} sleep 16 Send {f down} sleep 30 Send {RIGHT up} Send {f up} return
F1:: Send {DOWN down} sleep 16 Send {LEFT down} sleep 16 Send {DOWN up} sleep 16 Send {LEFT up} sleep 16 Send {DOWN down} sleep 16 Send {LEFT down} sleep 16 Send {DOWN up} sleep 16 Send {f down} sleep 30 Send {LEFT up} Send {f up} return
#IfWinActive
這些只是這個軟件所有功能的很少一部分,很多人幾乎是拿它作為一門單獨的編程語言來用的,只有想不到,沒有做不到。
所以我可以義無反顧地扔掉羅技換什么花哨功能都沒有的茶軸圣手,因為必要的功能全部靠AutoHotkey實現(xiàn)了。更可貴的是,這是個自由軟件——哪怕它賣50美元,我估計都會買的。
|