[基礎(chǔ)] 如何在 AHK 中運(yùn)行其他軟件

前幾篇文章講的都是 AHK 的語法宋光,比較枯燥弧轧,這篇文章的內(nèi)容更實(shí)用一些蚕甥。很多情況我們使用 AHK臼婆,并不是為了寫一個功能完備軟件,而是寫一個簡單的腳本來和其他軟件交互闹获,這就涉及到如何在 AHK 中運(yùn)行其他軟件硫惕。本文重點(diǎn)講 Run 命令的基本用法蛇受,其他高級內(nèi)容之后的文章會依次提及雹顺。

啟動軟件

使用 AHK 的經(jīng)典場景丹墨,就是用一個熱鍵啟動一個軟件,比如用 Win + n 啟動記事本:

#n::
    Run, notepad
return

這里就不詳細(xì)講綁定熱鍵的語法了嬉愧,因?yàn)橄嚓P(guān)資料特別多贩挣,而且我以后會單獨(dú)介紹熱鍵相關(guān)的內(nèi)容。重點(diǎn)看 Run, notepad没酣,這條語句就是啟動記事本王财,因?yàn)橛浭卤拒浖奈募?notepad.exe,是不是非常簡單裕便。但 Run 命令也并非簡單到只支持一個參數(shù)绒净,它的用法如下:

Run, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID]

Target 可以是可執(zhí)行文件的文件名,如上邊的 notepad闪金,可以加參數(shù)疯溺,也可以是一些其他東西论颅,后文會具體講到哎垦。WorkingDir 用來指定工作目錄,比如我想在 C 盤根目錄運(yùn)行記事本并打開 test.txt恃疯,就可以這樣:

Run, notepad test.txt, C:\

第三個參數(shù) Max|Min|Hide|UseErrorLevel 是選項(xiàng)漏设,可以讓運(yùn)行的軟件最大化(Max),最小化(Min)今妄,隱藏(Hide)郑口,UseErrorLevel 用于獲取進(jìn)程退出的返回碼鸳碧,暫時用不到,以后再講犬性。

第四個參數(shù) OutputVarPID 用來獲取進(jìn)程的 PID瞻离,暫時也用不到。

需要注意的一點(diǎn)乒裆,用 Run 啟動其他軟件后套利,AHK 代碼會繼續(xù)執(zhí)行,而不會等軟件退出鹤耍。如果需要等軟件退出再繼續(xù)運(yùn)行肉迫,需要用 RunWait 命令,這個后續(xù)我也會提到稿黄。

打開網(wǎng)址

Run 后邊除了加可執(zhí)行文件喊衫,還可以直接加網(wǎng)址,這樣就不要到處找瀏覽器的安裝位置了杆怕。

; 網(wǎng)址前邊需要加 http:// 或 https://族购,以便讓 AHK 知道這是一個網(wǎng)址
Run, https://autohotkey.com
; 如果網(wǎng)址是以 www. 開頭的,也可以省略 http:// 或 https://
Run, www.autohotkey.com
; 錯誤用法陵珍,AHK 會嘗試在本地找 autohotkey.com 文件联四,如果找不到就會報錯
Run, autohotkey.com

其他用法

除了啟動進(jìn)程和打開網(wǎng)址,Run 還有一些其他用法撑教。

打開文件朝墩。當(dāng) Run 后邊直接接非可執(zhí)行文件時,效果也是打開文件伟姐。打開文件所使用的軟件收苏,是在資源管理器關(guān)聯(lián)的默認(rèn)軟件,可以在資源管理器中選定文件愤兵,右鍵菜單->屬性 里更改打開方式鹿霸。

Run, open C:\test.txt
; open 可以省略
Run, C:\test.txt

編輯文件。效果同在資源管理器選定文件秆乳,右鍵菜單->編輯懦鼠,通常是用記事本打開。如果右鍵菜單里沒有“編輯”菜單項(xiàng)屹堰,會報錯肛冶。

Run, edit C:\test.txt

用資源管理器打開文件夾,需要加文件夾的路徑扯键。

Run, explore C:\

查看文件屬性睦袖,效果同在資源管理器選定文件,右鍵菜單->屬性荣刑。

Run, properties C:\test.txt

用資源管理器打開文件夾馅笙,并進(jìn)入搜索模式伦乔,以便查找文件。

Run, find C:\

打印文件董习,效果同在資源管理器選定文件烈和,右鍵菜單->打印,如果無“打印”菜單項(xiàng)皿淋,會報錯斥杜。

Run, print C:\test.txt

用資源管理器打開 CLSID 文件夾,CLSID 文件夾是由系統(tǒng)定義的一批特殊文件夾沥匈,名字是一串“神秘數(shù)字”蔗喂。

; 打開我的文檔文件夾
Run, ::{450d8fba-ad25-11d0-98a8-0800361b1103}

常用 CLSID 文件夾列表:

CLSID 名稱
::{20d04fe0-3aea-1069-a2d8-08002b30309d} 我的電腦
::{450d8fba-ad25-11d0-98a8-0800361b1103} 我的文檔
::{645ff040-5081-101b-9f08-00aa002f954e} 回收站
::{208d2c60-3aea-1069-a2d7-08002b30309d} 網(wǎng)上鄰居
::{7007acc7-3202-11d1-aad2-00805fc1270e} 網(wǎng)絡(luò)連接
::{2227a280-3aea-1069-a2de-08002b30309d} 打印機(jī)和傳真

關(guān)于空格和引號

如果文件名、路徑名或者參數(shù)中包含空格高帖,是需要特別注意的缰儿。

Run 后邊加的文件路徑是可以包含空格的,比如:

Run, c:\Program Files\Oracle\VirtualBox\VirtualBox.exe

Program Files 里包含一個空格散址,但 Run 不會將 c:\Program 視為文件名乖阵,將 Files\Oracle\VirtualBox\VirtualBox.exe 視為參數(shù)。但如果之后再加參數(shù)就要小心了预麸,謹(jǐn)慎起見瞪浸,需要對每一個參數(shù)單獨(dú)加上雙引號。

雖然在某些情況不加也可以工作吏祸,比如這樣:

Run, notepad aa bb.txt

會用記事本打開一個名為 aa bb.txt 的文件对蒲。

但也可能出問題,比如這樣:

Run, c:\mine\app\AutoHotkey\AutoHotkey.exe aa bb.ahk

AutoHotkey.exe 提示 aa 文件不存在贡翘,而實(shí)際我想運(yùn)行的文件為 aa bb.ahk蹈矮。同樣的語法,效果卻不同鸣驱,區(qū)別在于要運(yùn)行的軟件是如何解析參數(shù)的泛鸟。

如果在參數(shù)兩邊加上引號,就沒有這樣的問題了:

Run, notepad "aa bb.txt"

Run, c:\mine\app\AutoHotkey\AutoHotkey.exe "aa bb.ahk"

; 后邊可以再加參數(shù)踊东,但包含空格的參數(shù)都要有引號北滥。
Run, c:\mine\app\AutoHotkey\AutoHotkey.exe "aa bb.ahk" "arg 1" "arg 2"

等待軟件退出再繼續(xù)運(yùn)行

用 Run 命令啟動軟件的話,AHK 并不會等軟件退出后才繼續(xù)運(yùn)行闸翅,在運(yùn)行圖形界面軟件時再芋,這也是我們通常的做法。如果我們需要讓 AHK 暫停缎脾,直到運(yùn)行起來的軟件退出才繼續(xù)祝闻,可以用 RunWait 命令取代 Run占卧,除了這個區(qū)別遗菠,用法上和 Run 是一致的联喘。

其他內(nèi)容

除了將軟件運(yùn)行起來,很多時候我們也有一些其他需求辙纬。比如獲取軟件的輸出(通常是命令行軟件的輸出豁遭,如 ipconfig),獲取軟件的退出碼贺拣,獲取軟件進(jìn)程的 PID 等等蓖谢,我會在后續(xù)文章中詳細(xì)講到。

付費(fèi)解決 Windows譬涡、Linux闪幽、Shell、C涡匀、C++盯腌、AHK、Python陨瘩、JavaScript腕够、Lua 等領(lǐng)域相關(guān)問題,靈活定價舌劳,歡迎咨詢帚湘,微信 ly50247。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末甚淡,一起剝皮案震驚了整個濱河市大诸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贯卦,老刑警劉巖底挫,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脸侥,居然都是意外死亡建邓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門睁枕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來官边,“玉大人,你說我怎么就攤上這事外遇∽⒉荆” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵跳仿,是天一觀的道長诡渴。 經(jīng)常有香客問我,道長菲语,這世上最難降的妖魔是什么妄辩? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任惑灵,我火速辦了婚禮,結(jié)果婚禮上眼耀,老公的妹妹穿的比我還像新娘英支。我一直安慰自己,他們只是感情好哮伟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布干花。 她就那樣靜靜地躺著,像睡著了一般楞黄。 火紅的嫁衣襯著肌膚如雪池凄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天鬼廓,我揣著相機(jī)與錄音修赞,去河邊找鬼。 笑死桑阶,一個胖子當(dāng)著我的面吹牛柏副,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚣录,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼割择,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了萎河?” 一聲冷哼從身側(cè)響起荔泳,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虐杯,沒想到半個月后玛歌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡擎椰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年支子,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片达舒。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡值朋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巩搏,到底是詐尸還是另有隱情昨登,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布贯底,位于F島的核電站丰辣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笙什,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一飘哨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧得湘,春花似錦杖玲、人聲如沸顿仇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臼闻。三九已至鸿吆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間述呐,已是汗流浹背惩淳。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乓搬,地道東北人思犁。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像进肯,于是被迫代替她去往敵國和親激蹲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)者按:本文屬于零基礎(chǔ)入門專題教程江掩,原發(fā)表于博客中國(已失效)学辱,我曾轉(zhuǎn)載到中文論壇,作者 yonken(此處是他現(xiàn)...
    amnesiac閱讀 2,943評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理环形,服務(wù)發(fā)現(xiàn)策泣,斷路器,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • Ubuntu的發(fā)音 Ubuntu任洞,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音发侵。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,201評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,146評論 2 34
  • 驚醒交掏, 荊棘之夜沒有紅花。 從眼睛開始融化刃鳄, 淚水混著汗液攪拌血液盅弛。 月色正好, 一只蜻蜓娉婷而立。 平鋪的故事愿...
    煮呀煮閱讀 301評論 0 4