在后台启动Python程序

时间:2018-07-04 08:06:15

标签: python windows batch-file

我有一个Python程序,可以使用PyInstaller编译成.exe文件。当您打开.exe时,应该没有控制台,没有命令提示符或任何其他内容。它应该完全在后台静默运行Python程序。

是否可以在Python脚本中放置一些内容,使其不打开命令提示符并以静默方式执行?

3 个答案:

答案 0 :(得分:1)

是的,在Windows上您可以创建一个bat文件,如下所示:

start /B your_file.exe

将此代码添加到您的应用中:

import ctypes
import os
import win32process

hwnd = ctypes.windll.kernel32.GetConsoleWindow()      

    if hwnd != 0:      
        ctypes.windll.user32.ShowWindow(hwnd, 0)      
        ctypes.windll.kernel32.CloseHandle(hwnd)
        _, pid = win32process.GetWindowThreadProcessId(hwnd)
        os.system('taskkill /PID ' + str(pid) + ' /f')

答案 1 :(得分:1)

将这一行文本另存为invisible.vbs文件:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

要隐式运行任何程序或批处理文件,请按以下方式使用它:

wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"

为了也能够传递/中继参数列表,请仅使用两个双引号

CreateObject("Wscript.Shell").Run "" & WScript.Arguments(0) & "", 0, False

示例:Invisible.vbs“ Kill.vbs ME.exe”

答案 2 :(得分:1)

如果此方法无效,则可以使用--noconsole选项 将spec文件设置“控制台”更改为False。