Eryk Sun <[email protected]> added the comment:
> What is the most trivial way to test it's behaviour?
With CREATE_NO_WINDOW, the child process is attached to a console that has no
window. Thus calling GetConsoleWindow() in the child returns NULL without an
error. OTOH, if the child has no console (e.g. DETACHED_PROCESS or executing
"pythonw.exe"), then GetConsoleWindow() returns NULL with the last error set to
ERROR_INVALID_HANDLE (6). For example:
script = r'''
import sys
import ctypes
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
kernel32.GetConsoleWindow.restype = ctypes.c_void_p
ctypes.set_last_error(0)
result = kernel32.GetConsoleWindow()
status = bool(result or ctypes.get_last_error())
sys.exit(status)
'''
args = [sys.executable, '-c', script]
The child's exit status will be 0 if CREATE_NO_WINDOW works as expected.
Otherwise the exit status will be 1.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue30082>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com