當(dāng)一個(gè)blog連自己的主人都忘掉的時(shí)候,還能指望有別人來(lái)看么……這里似乎就是這樣的狀況。 不過(guò)我也確實(shí)想用這個(gè)blog了。比起放在開(kāi)心網(wǎng)之類的地方,至少這里還可能給更多需要的人看到。
今天的主題是AutoHotkey。一個(gè)神一般的軟件。
如果想贊美或者推廣這個(gè)軟件的話,其實(shí)是有很大難度的,因?yàn)樗揪筒蛔屓私咏瑳](méi)有GUI界面,所有定義都需要手動(dòng)敲代碼,代碼規(guī)則復(fù)雜但是HELP文檔只有英文可以看,所以這幾乎是一個(gè)專門(mén)給程序宅來(lái)用的軟件。
但是會(huì)用這個(gè)軟件的話,幾乎可以用它達(dá)到無(wú)限的功能。拿幾個(gè)最簡(jiǎn)單的例子——也是我目前在用的來(lái)說(shuō)。
一,多媒體鍵盤(pán)的程序運(yùn)行熱鍵
;;Win+* 打開(kāi)各種程序 #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
這是最簡(jiǎn)單的,雖然不能定義真正的多媒體鍵盤(pán)上多出來(lái)的那些鍵(其實(shí)不一定,但我沒(méi)有研究過(guò),等我研究一下),但是可以達(dá)到快速啟動(dòng)應(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還有庫(kù)功能,就像編程時(shí)調(diào)用的函數(shù)一樣。這里正好有一個(gè)例子,一些多媒體鍵盤(pán)(比如微軟)的驅(qū)動(dòng)會(huì)接管mute功能,那么其實(shí)可以用到另外兩個(gè)庫(kù)去實(shí)現(xiàn)靜音
#F12:: COM_Init() ;調(diào)用COM庫(kù) VA_SetMasterMute(!VA_GetMasterMute()) ;調(diào)用了VA庫(kù)里的函數(shù),Get Master Volume的值(0或1),再設(shè)成其非值 COM_Term() ;結(jié)束調(diào)用COM庫(kù) return ;結(jié)束Win+F12的定義
三,羅技SetPoint這樣的軟件可以為指定程序載入特定profile,比如這個(gè)鍵平時(shí)是播放器,在word里就是粘貼——AutoHotkey也可以,而且更強(qiáng)大:
;;輸入Alt+S等同于回車(chē)在MSN中 #IfWinActive ahk_class IMWindowClass ;這段就是指定在MSN 2009的class窗口激活時(shí)生效 !s::Send {Enter} ;Alt+S等同于輸入回車(chē) #IfWinActive ;結(jié)束對(duì)這個(gè)程序的特殊指定
于是這樣你就強(qiáng)奸了MSN 2009,微軟不做Alt+S發(fā)送,你用AutoHotkey來(lái)做。
四,鍵盤(pán)宏定義這樣的更是小菜一碟了
;;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快速出招:真空波動(dòng)拳
#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
這些只是這個(gè)軟件所有功能的很少一部分,很多人幾乎是拿它作為一門(mén)單獨(dú)的編程語(yǔ)言來(lái)用的,只有想不到,沒(méi)有做不到。
所以我可以義無(wú)反顧地扔掉羅技換什么花哨功能都沒(méi)有的茶軸圣手,因?yàn)楸匾墓δ苋靠緼utoHotkey實(shí)現(xiàn)了。更可貴的是,這是個(gè)自由軟件——哪怕它賣(mài)50美元,我估計(jì)都會(huì)買(mǎi)的。
|