2010-09-16 49 views
0

我想知道如何執行一個命令whitout出現cmd窗口。我的代碼是Python和O.S.是Windows7。Python:在沒有cmd界面或隱藏或在後臺執行子shell中的命令

問題的行是: os.system(pathandarguments)

程序正常工作,執行與參數給定的路徑,但我失去我的程序的控制,因爲我的程序窗口最小化,我看cmd窗口一秒鐘,然後我窗口程序不會最大化。

我想執行字符串pathandarguments而不會最小化我的主窗口。我更喜歡,如果可能的話,不要顯示cmd窗口。 我試過不同的方法來做到這一點:

os.system(pathandarguments) =工作正常,但最小化我的程序窗口。

os.popen(pathandarguments) = ERROR: CThread::staticThread : Access violation at 0x77498c19: Writing location 0x00000014(不工作)在Python腳本的OnAction

subprocess.Popen([pathandarguments], shell=False) =異常提前(不工作)

感謝。

編輯 @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

shell = False可能是最接近的,但是你是什麼意思的python scrip的onAction? – Mark 2010-09-16 17:21:07

+0

我也試過:subprocess.Popen([sacarThumb],shell = True)=程序不做任何事情。我的python腳本有一個按鈕,當我點擊按鈕時,執行具有os.system(pathandarguments)或os.system(pathandarguments)或subprocess.Popen([pathandarguments],shell = False)行的函數的代碼。 .. – GerarLM 2010-09-16 17:29:33

+0

@ Sam888:OP沒有提及嘗試執行沒有出現cmd窗口的Python腳本......這就是您提供的鏈接的全部內容。 – martineau 2012-05-28 15:55:33

回答

1

很長一段時間以來,我一直在使用一個開源的Python模塊進行過程控制,叫做​​。那裏的項目狀態說:「在目前的狀態下,它在商業Komodo IDE項目中被大量使用。」它是多平臺的,但我開始使用它的主要原因之一是因爲在Windows上它會產生一個沒有控制檯窗口的進程。使用非常簡單。這裏是一個簡單的例子:

import process 

p = process.ProcessOpen([eventfilepath]) # open text file with associated program 
ignored_exitstatus = p.wait() 

希望這會有所幫助。