gpt4 book ai didi

python - 子进程.Popen() : hide the cmd shell

转载 作者:可可西里 更新时间:2023-11-01 13:26:38 26 4
gpt4 key购买 nike

我试图在启动时调用一个可执行文件,它会调用另一个可执行文件本身。对于第一部分,我只是将可执行文件的路径添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,这是有效的,我的可执行文件在启动时被调用。

除其他外,后者包含以下几行:

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
proc = subprocess.Popen(command, startupinfo=startupinfo)

但是,当计算机启动时会弹出命令外壳 (cmd)。一切正常,但它是可见的而不是隐藏的......所以基本上,我如何隐藏这个命令外壳?

使用 ProcessExplorer 时,我有以下层次结构:

+ System
|_ Interrupts
|_ smss.exe
|_ some processes...
+ explorer.exe
|_ some processes...
|_ MYSCRIPT.EXE

这是我尝试实现的顺序:

  • 我创建了一个 ISO 文件,其中包含我想在 VM 上运行的所有 Python 可执行文件。其中之一 (master.exe) 调用其他。
  • 我创建了一个自动安装后者的 VM
  • 准备好的 VM 有一个调用 D:\master.exe
  • 的计划任务
  • master.exe(在我们这里不关心的其他任务中)将值 D:\myscript.exe 添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • 虚拟机重启
  • D:\myscript.exe 已运行(它工作正常并且有人参与),但它确实在命令提示符下运行,我希望它是不可见的。

最佳答案

这是 Python 程序员遇到的典型问题 - 因此,Python 本身提供了解决方案。它已被问过很多次,例如 here , 但对你来说,问题有点复杂。

这完全取决于您是使用python.exe 还是pythonw.exe 来运行您的脚本。对于第一个,控制台打开,第二个则没有。

当您使用编译脚本时,您必须告诉“编译器”您要使用哪个版本。假设你正在使用 py2exe,你可以看看 this post on SO .这里详细解释了如何进行。

关于python - 子进程.Popen() : hide the cmd shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com