如何根据是否为GUI应用程序来启动函数并选择等待或不等待?

0 投票
2 回答
618 浏览
提问于 2025-04-16 01:33

我在找一个Python函数,它的行为跟Windows的命令行工具cmd.exe一样,能够在等待新启动的程序完成时表现得很像。目前我在用os.system(),但这个函数总是会阻塞,也就是说它会一直等着,直到程序结束,哪怕是启动一些图形界面的应用程序(这些程序如果是用C/C++写的,通常会有一个WinMain函数,并且是用/SUBSYSTEM:WINDOWS链接的)。

那么我应该用什么代码来启动外部程序呢?我希望在启动控制台应用程序时函数能够阻塞,但在启动图形界面应用程序时又不想它阻塞?

2 个回答

0

Python没有一个标准的方法来查看你可以用进程API启动的可执行文件。

你可以试试用 cmd.exe 来启动外部命令?或者在 %TEMP% 目录下创建一个BAT脚本,然后运行它。

2

你可以写一个小的C语言程序,来检查子系统(可以用ImageNtHeader这个函数)。如果其他方法都不行的话,你还可以直接解析PE头部信息。

撰写回答