这个pywinauto异常从哪里得到它的列表?

时间:2013-05-07 20:54:46

标签: python python-2.7 pywinauto

如果我跑:

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 ....,由于某种原因,它与我所拥有的不匹配(例如,我创建了一个&#34 ;计算器&#34;和它的进程ID是6566,然后我运行find_windows(),我找不到进程ID。所以这是我有的另一个问题....但我可以如果我能得到我的巨人名单,就能解决这个问题。

这是我关于堆栈溢出的第一个问题。我希望我让你们自豪

1 个答案:

答案 0 :(得分: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)