如何启动一个函数并等待/不等待它取决于它是否是 GUI 应用程序?

发布于 2024-09-10 17:47:17 字数 308 浏览 4 评论 0原文

我正在寻找一个 Python 函数,在等待新启动的进程完成时,其行为就像 Windows 命令解释器 cmd.exe 一样。现在我正在使用 os.system() ,但是这个函数总是阻塞,即使在启动 GUI 应用程序时也是如此(如果它们是用 C/C++ 编写的,则有一个 WinMain ) code> 函数并与 /SUBSYSTEM:WINDOWS 链接)。

如果我确实希望该函数在启动控制台应用程序时被阻止,但我希望它在启动 GUI 应用程序时被阻止,我应该使用什么代码来启动外部进程?

I'm looking for a Python function which behaves just like the Windows command interpreter cmd.exe when it comes to waiting for newly launched processes to finish. Right now I'm using os.system() but this function always blocks, even when launching GUI applications (which, in case they were written in C/C++, have a WinMain function and were linked with /SUBSYSTEM:WINDOWS).

What code should I be using for launching external processes in case I do want the function to block when launching console applications, but I do not want it to block when launching GUI applications?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

2024-09-17 17:47:17

您可以编写一个小型 C 包装器/扩展来检查子系统(使用 ImageNtHeader)。如果其他方法都失败,您可以直接解析 PE 标头。

You could write a small C wrapper/extension that checks for the subsystem (using ImageNtHeader). If all else fails, you can parse the PE headers directly.

じ违心 2024-09-17 17:47:17

Python 没有标准方法来检查可以使用进程 API 启动的可执行文件。

使用 cmd.exe 启动外部命令怎么样?或者在 %TEMP% 中创建一个 BAT 脚本并运行它。

Python has no standard way to examine the executables you can start with the process API.

How about you start the external command using cmd.exe? Or create a BAT script in %TEMP% and run that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文