Python 按下热键时,使控制台窗口转到前面
对于我正在做的项目,当按下热键时,我需要一个控制台窗口成为焦点窗口。在这种情况下,它是F2。我已经修复了代码的热键部分,现在我需要让控制台窗口成为焦点 我目前有: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
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。