Getting output of command execution on windowed app

107 Views Asked by At

I have created a Python script and compiled it into an exe file with PyInstaller. In the process, I have specified the -w option to get an app that doesn't have any console.

Everything works fine except the execution of commands using popen:

mout = subprocess.Popen(['ls','C:\'])

This line generates an exception [Error 6] The handle is invalid.

I have tried adding the parameters stdout=subprocess.PIPE, stderr=subprocess.PIPE but it stills not working. I think that is because the main process doesn't have any console assigned. I want to execute the command but without opening any shell, it has to be transparent to the user.

Is there any option?

1

There are 1 best solutions below

2
On BEST ANSWER

This should solve your issue.

proc = subprocess.Popen(['ls','C:\\'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, creationflags=CREATE_NO_WINDOW)