Mrown
1/9/2008 4:11:00 PM
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)