1. 程式人生 > >Tcl/tk例項—使用tclkit工具將指令碼打包成可執行檔案(.exe)

Tcl/tk例項—使用tclkit工具將指令碼打包成可執行檔案(.exe)

下載 tclkit.exe 工具,及 sdx.kit 檔案。

複製一份tclkit.exe ,命名為tclkit2.exe。

假設你的指令碼檔案為:app.tcl


Step1:

命令列執行

tclkit.exe sdx.kit qwrap app.tcl

執行完畢會生成一個 app.kit 檔案。


Step2:
tclkit.exe sdx.kit unwrap app.kit

執行完畢會在目錄下生成 app.vfs 資料夾和app.kit檔案。

 

Step3:

如果你的 tcl 指令碼中存在這樣的語句:

package require xxx
請將指令碼所依賴的包xxx,複製到 app.vfs\lib  下面。

 

如果你想改變所生成檔案的圖示:

將你的圖示檔案(*.ico)複製到 app.vfs 資料夾,並改名為 tclkit.ico。(ico是圖示副檔名)

 

Step4:

命令列執行

tclkit.exe sdx.kit wrap app.exe -runtime tclkit2.exe

執行完畢會在目錄生成 app.exe 檔案,完成。

 

More:

 

呼叫打包後.exe檔案中的資源

執行Step4

之前,可以向app.vfs資料夾中加入資源(圖片、文件),一起打包進去。

此時,我們的目標指令碼app.tcl是位於app.vfs/lib/app-app下。

複製檔案exit.png到app.vfs/lib/app-app/icons/exit.png;

複製指令碼test.tcl到app.vfs/lib/app-app/test.tcl

 

可以在app.tcl中這樣使用這2個資源:

set img [ open [ file dirname [ info script ]]/icons/exit.png {RDONLY BINARY} ]; #讀取app.exe/app.vfs/lib/app-app/icons下的exit.png檔案
set data [ read $img nonewline ]
close $img
# do something here

source [ file dirname [ info script ]]/test.tcl; #在當前位置匯入app.exe/app.vfs/lib/app-app下的test.tcl指令碼


執行Step4後,雙擊執行app.exe檔案,OK。