➭ Python 3.8
如今现在 又碰到了, 必须 要用 Py 运行程序启动 exe
最后的灵感是, 在逛精易论坛,发现个帖子 : < 运行()和 手动双击exe 有区别 >
# 创建进程_EX
import win32process
import win32con
import win32api
import os
def create_process_ex(program_path, command_line="", show_command=win32con.SW_SHOWNORMAL, current_directory=""):
if not current_directory:
current_directory = os.path.dirname(program_path)
startupinfo = win32process.STARTUPINFO()
startupinfo.dwFlags = win32con.STARTF_USESHOWWINDOW # 指定使用 wShowWindow
startupinfo.wShowWindow = show_command
process_handle = None
thread_handle = None
process_id = 0
try:
process_info = win32process.CreateProcess(
program_path,
command_line,
None, # 进程的安全属性
None, # 线程的安全属性
False, # 是否继承句柄
0, # 创建标志 (这里为0表示使用默认)
None, # 新进程的环境块
current_directory,
startupinfo
)
process_handle = process_info[0]
thread_handle = process_info[1]
process_id = process_info[2]
if process_handle:
win32api.CloseHandle(process_handle)
if thread_handle:
win32api.CloseHandle(thread_handle)
return process_id
except Exception as e:
if process_handle:
win32api.CloseHandle(process_handle)
if thread_handle:
win32api.CloseHandle(thread_handle)
return 0
if __name__ == '__main__':
url = r"C:\Hawk\Start.exe"
process_id= create_process_ex(url)
if process_id:
print(f"进程创建成功. PID: {process_id}")
else:
print("创建进程失败.")