Python 按下热键时,使控制台窗口转到前面

Python 按下热键时,使控制台窗口转到前面,python,console,ctypes,Python,Console,Ctypes,对于我正在做的项目,当按下热键时,我需要一个控制台窗口成为焦点窗口。在这种情况下,它是F2。我已经修复了代码的热键部分,现在我需要让控制台窗口成为焦点 我目前有: import win32gui import win32con, ctypes.wintypes, ctypes def bringtofront(): #win32gui.ShowWindow(self, win32con.SW_MAXIMIZE) something like this? print "now a

对于我正在做的项目,当按下热键时,我需要一个控制台窗口成为焦点窗口。在这种情况下,它是F2。我已经修复了代码的热键部分,现在我需要让控制台窗口成为焦点

我目前有:

import win32gui
import win32con, ctypes.wintypes, ctypes

def bringtofront():
    #win32gui.ShowWindow(self, win32con.SW_MAXIMIZE) something like this?
    print "now at the front!"

ctypes.windll.user32.RegisterHotKey(None, 1, 0, win32con.VK_F2)  
while True:

    try:
        msg = ctypes.wintypes.MSG()
        while ctypes.windll.user32.GetMessageA(ctypes.byref(msg), None, 0, 0) != 0:
            if msg.message == win32con.WM_HOTKEY:
                bringtofront()
            ctypes.windll.user32.TranslateMessage(ctypes.byref(msg))
            ctypes.windll.user32.DispatchMessageA(ctypes.byref(msg))
    finally:
        ctypes.windll.user32.UnregisterHotKey(None, 1)
只是想澄清一下我遇到麻烦的代码部分是

win32gui.ShowWindow(self, win32con.SW_MAXIMIZE)

基于此,您似乎需要使用SW_SHOWMAXIMIZED,尽管我还没有尝试过…

您的问题不清楚,但win32gui.SetFocus或win32gui.SetForegroundWindow可能是您想要的。请尝试取消隐藏、还原、设置为前台,并设置焦点:hWnd=win32console.GetConsoleWindow;win32gui.ShowWindowhWnd、win32con.SW_-SHOW;win32gui.ShowWindowhWnd、win32con.SW\u还原;win32gui.setforegroundindownd;win32gui.SetFocushWnd。