win32: specify _CREATE_NO_WINDOW on spawndetached()
authorAdrian Buehlmann <adrian@cadifra.com>
Mon, 25 Jun 2012 19:11:29 +0200
changeset 17050 e780fb37168b
parent 17044 3dd6da761fff
child 17051 c5ed575f3137
win32: specify _CREATE_NO_WINDOW on spawndetached() Before this change, a console window briefly popped up on "hg serve -d" and disappeared again, stealing the focus window (which was very annyoing when running tests). Specifying _CREATE_NO_WINDOW instead of _DETACHED_PROCESS fixes this (as tested on Windows 7 x64).
mercurial/win32.py
--- a/mercurial/win32.py	Wed Jun 27 02:34:58 2012 +0200
+++ b/mercurial/win32.py	Mon Jun 25 19:11:29 2012 +0200
@@ -97,7 +97,7 @@
                 ('dwProcessId', _DWORD),
                 ('dwThreadId', _DWORD)]
 
-_DETACHED_PROCESS = 0x00000008
+_CREATE_NO_WINDOW = 0x08000000
 _STARTF_USESHOWWINDOW = 0x00000001
 _SW_HIDE = 0
 
@@ -337,7 +337,7 @@
     args = comspec + " /c " + args
 
     res = _kernel32.CreateProcessA(
-        None, args, None, None, False, _DETACHED_PROCESS,
+        None, args, None, None, False, _CREATE_NO_WINDOW,
         env, os.getcwd(), ctypes.byref(si), ctypes.byref(pi))
     if not res:
         raise ctypes.WinError