对于我正在进行的项目,我需要一个控制台窗口,以便在按下热键时成为焦点窗口。在这种情况下,它是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)
答案 0 :(得分:0)
基于https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx,您似乎需要使用SW_SHOWMAXIMIZED
,虽然我没有尝试过...