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

时间:2015-03-30 10:09:58

标签: python console ctypes

对于我正在进行的项目,我需要一个控制台窗口,以便在按下热键时成为焦点窗口。在这种情况下,它是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)

1 个答案:

答案 0 :(得分:0)

基于https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx,您似乎需要使用SW_SHOWMAXIMIZED,虽然我没有尝试过...