[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

subprocess.Popen spawning cmd shells

Mrown

1/9/2008 3:18:00 PM

Hi,
I'm currently writing a python program that relies on a CLI
program. What I'm currently doing is using subprocess.Popen on Python
2.5.1. Here's the line that I'm currently running:

child = subprocess.Popen(["c:\app.exe", node, "-w",
str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)

The problem is that although the above works, a CMD shell is spawned
and becomes visible for each time I run the above. I thought that by
redircting stdin, stdout and stderr, no CMD shell should pop-up. Is
something wrong in the way I'm using subprocess? Thanks for your help.
1 Answer

Mrown

1/9/2008 4:11:00 PM

0

On Jan 9, 5:17 pm, Mrown <mathewbr...@fastmail.fm> wrote:
> Hi,
>   I'm currently writing a python program that relies on a CLI
> program.  What I'm currently doing is using subprocess.Popen on Python
> 2.5.1.  Here's the line that I'm currently running:
>
>             child = subprocess.Popen(["c:\app.exe", node, "-w",
> str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
> stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>
> The problem is that although the above works, a CMD shell is spawned
> and becomes visible for each time I run the above.  I thought that by
> redircting stdin, stdout and stderr, no CMD shell should pop-up.  Is
> something wrong in the way I'm using subprocess?  Thanks for your help.

To anyone interested, I found the solution by using the
CREATE_NO_WINDOW creation flag. So this is what the code now looks
like (and it doesn't spawn any shells):

CREATE_NO_WINDOW = 0x8000000
child = subprocess.Popen(["c:\app.exe", node, "-w",
str(tmpTime * 1000), '-n', str(1), '-l'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE, creationflags =
CREATE_NO_WINDOW)