2011-11-08 29 views
8

tôi gọi subprocess như thế này:Tại sao subthon python.Popen khởi chạy tiến trình con thông qua cmd.exe?

command = 'c:\somepath\myexe.exe' 

startupinfo = subprocess.STARTUPINFO() 
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW 

p = subprocess.Popen(command, shell=False, startupinfo=startupinfo) 

Dường như thay vì tung ra myexe.exe trực tiếp, nó đi qua cmd.exe. Tôi có thể tránh cmd.exe ở đây không?

+3

Điều gì khiến bạn nghĩ rằng nó sử dụng 'cmd'? Chắc chắn là không. –

+1

Bạn có nghĩa là '| =' có chứ không phải là '! ='. Một là "bitwise hoặc" gán một là "không bằng" so sánh. – agf

+0

cho mỗi myexe.exe xuất hiện trong danh sách quá trình là xem một chương trình cmd.exe dưới csrss.exe. không thể là một sự trùng hợp ngẫu nhiên, một của nó cho một. – pbx

Trả lời

3

Iff bạn đang sử dụng Python 2.7 - sử dụng subprocess._subprocess.STARTF_USESHOWWINDOW thay vì subprocess.STARTF_USESHOWWINDOW. Tôi nghĩ rằng điều này sẽ giải quyết nó.

+0

vui lòng đánh dấu là câu trả lời nếu nó giúp bạn. cảm ơn. –

Các vấn đề liên quan