Windows下執行不打包的桌面級python代碼(desktop program)不顯示DOS窗口的辦法

大多時候,Windows桌面級python代碼打包成exe程序後,是沒有那個“顯眼”烏漆嘛黑的DOS窗體。但有時,“懶”得打包python代碼,且直接執行,不想看到DOS窗口怎麼辦?

仔細思考,DOS窗口是Windows操作系統關聯的,所以這是平臺相關性比較緊密的問題。(Linux下的情況應該相似)這種情景下應當考慮使用系統命令shell來執行程序並隱藏命令行窗體。Windows的shell處理又稱“bat”,擴展名爲bat的批處理可以執行系統的各種基礎操作命令。bat文件是在DOS下執行的,沒有隱藏自身程序主體的功能。

所幸的是,Windows的shell可以直接調用系統庫解析執行vbs腳本(Visual Basic Script),而vbs腳本可以實現目標。(以往的Windows平臺可能與BASIC語言有非常緊密的聯繫)

整個過程描述就是:

  1. 生成shell命令執行python代碼的bat批處理
  2. 生成執行上述bat程序且隱藏DOS窗體的vbs腳本
  3. 執行上述vbs腳本

代碼實現:

python_code_exc.bat:

@echo off
cd ..\python_code_dir
python_app_main_entry.pyw

python_code_exc.vbs:

Set vbsshell=WScript.CreateObject("WScript.Shell")
vbsshell.run "python_code_exc.bat", 0

執行python_code_exc.vbs相當於直接執行python_app_main_entry.pyw。這樣間接執行python代碼有什麼用呢?通過命令執行python代碼。當然想要隱藏python代碼最好的方式是混淆。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章