有没有人知道pywinauto的find_window函数的技巧?我正在用kivy构建一个应用程序,并尝试使用pywinauto将.exe带到前台,使用以下代码:
SetForegroundWindow(find_window(title='program.exe'))
我只是想识别一个当前打开的.exe,并把它带到前台。我看过这里https://pywinauto.github.io/docs/code/pywinauto.findwindows.html,似乎“title =”就是我想要的。
有没有人知道如何用pywinauto指向.exe?
答案 0 :(得分:0)
我认为标题是窗口标题(即" python - 找不到..."如果是这个标签),你确定它不再像" process =&#39 ;的Program.exe'" ?
如果需要和int然后是它的pid(进程ID),你可以用它来按标题获取进程id:
import win32gui,win32process
def get_window_pid(title):
hwnd = win32gui.FindWindow(None, title)
threadid,pid = win32process.GetWindowThreadProcessId(hwnd)
return pid
最终有这个答案,因为它包含非常好的获取windows Python Window Activation的类,我不想复制粘贴,但使用它然后你可以这样做:
w = WindowMgr()
w.find_window_wildcard(".*Hello.*")
w.set_foreground()
答案 1 :(得分:0)
find_window
是我不建议使用的低级功能。
正确的是Application
对象连接到目标进程。可以这样使用:
from pywinauto import Application
app = Application(backend=“uia”).connect(path=“program.exe”)
app.WindowTitle.set_focus()
如果您有多个应用实例,则有一个Desktop
对象可以遍历系统中的所有窗口:
from pywinauto import Desktop
Desktop(backend=“win32”).window(title=“Window Title”, found_index=0).set_focus()
你提到了0.5.4版本的旧文档,最新版本是0.6.4,有两个可用的后端和许多错误修复。主页上的“入门指南”链接是学习主要概念的良好来源。