Getting subprocesses to be hidden on Windows
Larry Bates
larry.bates at websafe.com
Tue Aug 28 12:18:52 EDT 2007
geoffbache wrote:
> Hi,
>
> As part of my efforts to write a test tool that copes with GUIs
> nicely, I'm trying to establish how I can start a GUI process on
> Windows that will not bring up the window. So I try to hide the window
> as follows:
>
> info = subprocess.STARTUPINFO()
> info.dwFlags |= subprocess.STARTF_USESHOWWINDOW
> info.wShowWindow = subprocess.SW_HIDE
>
> proc = subprocess.Popen(..., startupinfo=info)
>
> This works, in a way, but doesn't work recursively. I.e. if the
> started process itself starts a window, that second window will not be
> hidden. This even applies to dialog boxes within the application. So
> instead of a lot of windows popping up I now get a lot of disembodied
> dialogs appearing, which is a slight improvement but not much.
>
> Also, certain processes (e.g. tkdiff) seem to ignore the directive to
> be hidden altogether.
>
> This is dead easy on UNIX with virtual displays like Xvfb. Can someone
> shed any light if it's possible on Windows from python?
>
> Regards,
> Geoff Bache
>
While I'm not entirely sure I understand what you want, I think you can
accomplish it by using win32CreateProcess instead of subprocess. You can run
the application minimized or perhaps in a REALLY small window. If you have
modal dialog boxes, I don't think you can do anything as they don't run in the
parent windows frame but rather outside (I could be wrong about this).
-Larry
More information about the Python-list
mailing list