Python 使控制台消失并重新出现会在启动时立即显示

Python 使控制台消失并重新出现会在启动时立即显示,python,windows,python-3.x,console,show-hide,Python,Windows,Python 3.x,Console,Show Hide,我有一个GUI应用程序,其中的(使用pyw扩展似乎不允许控制台重新出现),但现在我需要使其重新出现以允许用户输入。这是我目前的代码: import ctypes kernel32 = ctypes.WinDLL('kernel32') user32 = ctypes.WinDLL('user32') SW_HIDE = 0 hWnd = kernel32.GetConsoleWindow() user32.ShowWindow(hWnd, SW_HIDE) import tkinter

我有一个GUI应用程序,其中的(使用
pyw
扩展似乎不允许控制台重新出现),但现在我需要使其重新出现以允许用户输入。这是我目前的代码:

import ctypes

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

SW_HIDE = 0

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


import tkinter as tk

def show_console():

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

    SW_SHOW = 5

    hWnd = kernel32.GetConsoleWindow()
    user32.ShowWindow(hWnd, SW_SHOW)

tk.Frame()

a = tk.Button(text = 'Make Console Appear', command=show_console)
a.pack()

tk.mainloop()

这会根据需要隐藏和显示控制台,但在首次启动时,windows会短暂显示,然后消失。我怎样才能防止这种情况发生?

我认为这可能是不可能的。AFAIK当python进程启动时,控制台就会出现,在加载、解析和执行程序之前,控制台一直可见。此外,我认为你想做的是不明智的。如果用户的PC被配置为在python程序运行时显示python终端,为什么要特意隐藏该窗口?如果用户想看到它怎么办?如果我在一个终端中工作,我启动了你的程序,它隐藏了我试图使用的终端,该怎么办?你为什么要这样隐藏和显示终端?@Aran Fey我明白你在第一部分所说的。那我该怎么办?创建第二个脚本并将其作为一个单独的可视控制台启动,而不是尝试将所有内容集成到一个中?为了回答您的问题,我正在构建一个带有自己的自定义终端的桌面应用程序。当点击按钮时,我需要打开终端。我想你应该停止隐藏终端。如果你想要自己的定制终端,为什么不实现一个带有tkinter对话框和textarea的终端呢?@Aran Fey我明白了。然后把它做成一个儿童窗口。好的,我想那可能行。谢谢