Hiding the console window after reading input

2019-02-19 00:12发布

问题:

I have a script that has a GUI, which takes user data and stores it into a text file. It runs another script (an .exe), which waits for user input and then does some work. What I want is for the latter script to hide its console window after reading input from the user, but to continue working in the background.

I tried to run that script with subprocess.call('lastscript.exe', shell=True)or subprocess.Popen('lastscript.exe', shell=True). This doesn't work. I have to take input from the user first, and then hide the console and let the program work in the background.

回答1:

Here's a code snippet to hide the Windows console in a Python script:

import ctypes

kernel32 = ctypes.WinDLL('kernel32')
user32 = ctypes.WinDLL('user32')

SW_HIDE = 0

hWnd = kernel32.GetConsoleWindow()
if hWnd:
    user32.ShowWindow(hWnd, SW_HIDE)