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代码最好的方式是混淆。

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