:::

打造獨特的EXE檔案:在AutoIt編譯時加上圖示 / Compile AutoIt into an EXE file with specific Icon

5-EXE_AutoIt_Compile_AutoIt_into_an.png

哈嚕~~我是非常喜歡為各個網站加入特製腳本跟樣式表、讓網站用起來更順手的布丁。今天要來介紹的是如何為AutoIt編譯的exe檔案指定特定圖示的做法。做法很簡單,只要在開頭加上「#pragma compile(Icon, 'icon.ico')」語法即可。讓我們以archive-util-7z.au3為例子,看看怎麽在AutoIt程式裡面加上指定圖示的語法吧。


AutoIt預設編譯圖示 / Default icon of AutoIt's exe file

2019-0925-234647.png

預設AutoIt所編譯的exe檔案,並不帶圖示。產生出來的exe並沒有鑑別度,不能看圖示來判斷這是什麼程式,只能看檔案名稱而已。

2019-0925-234853-AutZExe-Aut-Script-to-EXE-Converter.png

雖然AutoIt的Aut2Exe裡面有Custom Icon的選項,可以讓我們將AutoIt的原始碼au3轉換成exe時,加入特定的ico格式圖示檔案。不過開發AutoIt的au3檔案時,我們通常是在SciTE-Lite編輯器裡面進行編輯和編譯等工作。如果還要額外開啟Aut2Exe才能加入圖示,那就會拖慢開發效率了。

還好,AutoIt提供了直接在程式裡面加入圖示的語法,這樣子我們就能在編輯器裡面直接編譯,不用再勞煩Aut2Exe了。


在AutoIt中加入指定圖示的語法 / Compile AutoIt with specific icon

2019-0925-232914-pulpulichen-AutoH-Archive-UtI-Code.png

如果想要讓AutoIT的程式碼 (副檔名為au3) 在編譯時能夠產生具有特定圖示的exe執行檔,那只要在程式碼開頭加上一段語法:

#pragma compile(Icon, 'icon.ico')

紅字黃底的地方是.ico格式圖示檔案的路徑,可以用跟此au3檔案的相對路徑來表示。

舉例來說,我在archive-util-7z.au3中加入圖示的語法如下:

#pragma compile(Icon, 'icons/7zip.svg.ico')

這個檔案我把它轉換成PNG格式之後呈現如下:

7zip.svg.png

(圖示來源:Icons)

編譯成EXE檔案之後,呈現結果如下:

2019-0925-234248-archive-util-Tzex.png

最後就能產生帶有獨特圖示的exe執行檔了。


圖示檔的選擇 / How to choose icon?

2019-09-26_000049.png

(網頁截圖:findicons)

瞭解了AutoIt如何加上圖示之後,接下來我們可以來想想要加入什麼圖示。這邊我推薦大家可以先到開放自由的findicons圖示圖庫找尋合適的圖示:

為什麼選擇findicons呢?這是因為AutoIt所編譯的exe檔案是在Windows環境下運作,而早期的Windows (包括Windows 7)會用到的圖示解析度大概只有32x32、16x16。許多圖示圖庫網站所收錄的高解析度圖示,在Windows環境中縮小來看,反而會變得更為模糊。

2019-0926-000644.png

findicons提供了「Filter Menu」,可以篩選圖示尺寸(Size Range),這可以讓我們很輕易找到32px大小以下的圖示。

2019-0926-000848.png

此外,findicons的很多圖示也同時提供了ICO格式的下載檔案,省下檔案格式轉換的手續。

2019-0926-001030-or-Overview-Other-Size-Icon-Pack.png

最後findicons最重要的特色,就是大部分圖示都是開放授權,可以免費自由下載與使用。每個圖示的授權條款可能不大相同,以7Zip icons, free icons in QUIET, (Icon Search Engine)這個圖示為例,作者Tidav為它設定的授權為Freeware 自由軟體,表示大家可以安心下載與使用。

如何將圖片轉換成ico圖示檔格式 / How to convert image to ico format

AutoIt只能接受ico格式的圖片。如果你手邊的圖片格式不是ico,那就得要透過其他方法來將圖片轉換成ico格式。我在Windows本機端常用的圖片檢視器XnView MP可以將主流圖片格式轉換成ico格式,不過其實這件事情也不需要特地安裝軟體,只要使用線上的轉換器就可以做到了。

2019-0926-001439-Converto-Convert-OCR-API-Pricing.png

(網頁截圖:Convertio)

這邊我推薦大家使用的是Convertio。介面美觀,操作直覺,簡單易用。

2019-0926-002120-Convero-Convert-OCR-API-Pricing.png

我們可以直接把想要轉換的圖片拖曳到Convertio網頁上。

2019-0926-002223-Convertio-coer-ue-we-ne-uaw-aun.png

拖曳上去的圖片會加入待轉換的列表中,請按下右下角的「Convert」按鈕。

2019-0926-002322-Convertio-coer-ue-we-ne-uaw-San.png

稍待片刻。

2019-0926-002420-Convertio-coer-ue-we-ne-wen-mw-ico.png

很快就轉換好了,接下來按「Download」就可以取得ico格式的圖檔囉。


結語 / In closing

這篇講的事情其實很小,可以用「AutoIt裡面加入『#pragma compile(Icon, 'icon.ico')』語法就能在編譯時加入圖示」一句話來解決。

那為什麼我要寫這篇呢?

這是因為我常常忘記這個語法,而直接Google搜尋,又常常會找到一些似是而非的語法,像是「Adding an icon for executable?」的「#AutoIt3Wrapper_icon=your_icon.ico」,這個語法實際上沒有效果。其他網頁也很少看到正確的加入圖示語法。找來找去,最後我還是得回去翻以前寫的au3程式碼。

最後我終於忍不住了,還是把這件事情寫成一篇文章。希望未來直接Google就能找到AutoIt加入圖示的正確教學,造福AutoIt的開發者吧。


那麼這次為AutoIt加上圖示的教學就到這裡了。寫到最後,我有些問題想問問大家:

  • 你用過AutoIt開發程式嗎?你都是怎麽把exe執行檔加上圖示呢?
  • 你最常用的圖示資料庫是什麼呢?你覺得它哪裡好用呢?

歡迎在下面的留言處跟我們分享你的想法。大家的意見是我繼續分享的動力喔!如果你覺得我這篇實用的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!

感謝你的耐心閱讀,我是布丁,讓我們下一篇見。