Tcl/tk例項—使用tclkit工具將指令碼打包成可執行檔案(.exe)
阿新 • • 發佈:2018-12-29
下載 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 指令碼中存在這樣的語句:
請將指令碼所依賴的包xxx,複製到 app.vfs\lib 下面。package require xxx
如果你想改變所生成檔案的圖示:
將你的圖示檔案(*.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。