我想知道如何执行命令whitout出现在cmd窗口中。 我的代码是Python和O.S.是Windows7。
有问题的一行是:
os.system(pathandarguments)
程序工作正常,用参数执行给定的路径但是我放松了对程序的控制,因为我的程序窗口最小化,我看到cmd窗口一秒钟,然后我的窗口程序不会最大化。
我想执行字符串pathandarguments而不会最小化我的主窗口。我更喜欢,如果可能的话,不要显示cmd窗口。 我试过不同的方法来做到这一点:
os.system(pathandarguments)
=工作正常,但最小化了我的程序窗口。
os.popen(pathandarguments)
= ERROR: CThread::staticThread : Access violation at 0x77498c19: Writing location 0x00000014
(不要工作)
subprocess.Popen([pathandarguments], shell=False)
= python脚本中的异常onAction(不工作)
提前致谢。
修改 @martineau,问题不是我无法导入进程,修改我的应用程序的日志我看到问题是在第146行的导入过程:
13:42:20 T:4116 M:2156859392 NOTICE: import win32api
13:42:20 T:4116 M:2156859392 NOTICE: ImportError
13:42:20 T:4116 M:2156859392 NOTICE: :
13:42:20 T:4116 M:2156859392 NOTICE: No module named win32api
我没有模块win32api。
答案 0 :(得分:1)
很长一段时间以来,我一直在使用开源Python模块进行过程控制,名为 process-python 。那里的项目状态说“在目前的状态下,它在商业Komodo IDE项目中得到了大量使用。”它是多平台的,但我开始使用它的主要原因之一是因为在Windows上它会产生一个没有控制台窗口的进程。它使用起来非常简单。这是一个简单的例子:
import process
p = process.ProcessOpen([eventfilepath]) # open text file with associated program
ignored_exitstatus = p.wait()
希望这有帮助。