保持终端焦点

保持终端焦点,第1张

保持终端焦点

这是我想出的似乎是可行的。

class WindowManager:    def __init__(self):        self._handle = None    def _window_enum_callback( self, hwnd, wildcard ):        if re.match(wildcard, str(win32gui.GetWindowText(hwnd))) != None: self._handle = hwnd    #CASE SENSITIVE    def find_window_wildcard(self, wildcard):        self._handle = None        win32gui.EnumWindows(self._window_enum_callback, wildcard)    def set_foreground(self):        win32gui.ShowWindow(self._handle, win32con.SW_RESTORE)        win32gui.SetWindowPos(self._handle,win32con.HWND_NOTOPMOST, 0, 0, 0, 0, win32con.SWP_NOMOVE + win32con.SWP_NOSIZE)          win32gui.SetWindowPos(self._handle,win32con.HWND_TOPMOST, 0, 0, 0, 0, win32con.SWP_NOMOVE + win32con.SWP_NOSIZE)          win32gui.SetWindowPos(self._handle,win32con.HWND_NOTOPMOST, 0, 0, 0, 0, win32con.SWP_SHOWWINDOW + win32con.SWP_NOMOVE + win32con.SWP_NOSIZE)        shell = win32com.client.Dispatch("Wscript.Shell")        shell.SendKeys('%')        win32gui.SetForegroundWindow(self._handle)    def find_and_set(self, search):        self.find_window_wildcard(search)        self.set_foreground()

然后找到一个窗口并将其激活,您可以…

w = WindowManager()w.find_and_set(".*cmd.exe*")

这是在python 2.7中,这也是我发现的一些链接,这些链接解释了为什么要切换活动窗口时您必须经历很多麻烦。

win32gui.SetActiveWindow()错误:找不到指定的过程

Windows
7:无论其他哪个窗口都有焦点,如何将一个窗口置于最前面?



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5642948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存