1

如果我运行:

from pywinauto.findwindows import find_windows

find_windows(best_match="affafa")

我得到一个返回的异常

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "c:\Python27\lib\site-packages\pywinauto\findwindows.py", line 204, in find_windows
   best_match, wrapped_wins)
 File "c:\Python27\lib\site-packages\pywinauto\findbestmatch.py", line 497, in    find_best_control_matches
   raise MatchError(items = name_control_map.keys(), tofind = search_text)

   pywinauto.findbestmatch.MatchError: Could not find 'affafa' in '[u'CabinetWClass', u'Inbox (1,455) - ******@gmail.com - Gmail - Google Chrome', u'Chrome_WidgetWin_1', '', u'*new  2 - Notepad++Notepad++', u'python - Where does this pywinauto exception get its list from? - Stack Overflow - Google ChromeChrome_WidgetWin_1', u'C:\\Windows\\system32\\cmd.exe - pythonConsoleWindowClass1', u'C:\\Windows\\system32\\cmd.exe - pythonConsoleWindowClass0', u'C:\\Windows\\system32\\cmd.exe - pythonConsoleWindowClass2']' # this list has been shortened for security reasons

我想要做的是,找出巨大的进程列表来自哪里并直接调用它。

到目前为止,我一直在搞砸

find_windows(visible_only = False)
# and some of the other options listed in findwindows.py

但是所有 find_windows 选项只返回一个数字列表,我认为这些数字来自文档,我认为是进程 ID....,由于某种原因与我所拥有的不匹配(例如,我创建了一个“计算器”及其进程ID 是 6566,然后我运行 find_windows(),但在其中找不到进程 ID。所以这是我遇到的另一个问题....但如果我能得到我的巨型列表,我可以解决这个问题。

这是我关于堆栈溢出的第一个问题。我希望我让你们感到骄傲

4

1 回答 1

2

如果要获取所有窗口的名称列表,则应使用下一个构造。

handles = pywinauto.findwindows.find_windows()
for w_handle in handles:
    wind = app.window_(handle=w_handle)
    print wind.Texts()

您可以通过函数的下一个参数过滤/扩展列表find_windows

  • top_level_only 仅顶层窗口(默认=True)
  • visible_only 仅可见窗口(默认=True)
  • enabled_only 仅启用窗口(默认=True)
  • active_only 仅活动窗口(默认=False)
于 2013-05-09T08:58:17.923 回答