Python&Windows:生成一个进程,然后在不显示cmd promp的情况下死掉

2024-06-09 15:01:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个python脚本的问题,这个脚本负责同步来自VCS的更改(其中包括对它所依赖的自身/库的更改)。在这种情况下,我希望能够检测到同步是否触及了我所依赖的任何东西,如果是这样的话,就重新启动

在POSIX平台上,这很简单。exec(),完成。在Windows上,这真是令人讨厌。我可以Popen或exec*(),然后就死了,但问题是我的用户会看到cmd提示符显示一个新行,这会扰乱输出流,更不用说完全中断stdin上的任何未来输入,允许他们在我的脚本仍在运行时运行命令,这是不可取的

我上下搜索都没有找到答案(是的,我知道有其他方法可以实现同样的目标,但有这样的工作就好了)。问题似乎是告诉控制台新进程现在是控制台的“所有者”,但我找不到方法来做到这一点。我试着通过ctypes调用https://msdn.microsoft.com/en-us/library/windows/desktop/ms681952(v=vs.85).aspx,但也没用

非常感谢您的帮助。谢谢


Tags: 方法答案用户命令脚本cmdwindowsstdin