是否有方法可以访问函数结果,我已经在其上应用了另一个函数。例如:
win32gui.EnumWindows(a_function, extra)
EnumWindows将迭代所有顶级窗口并将hwnd传递给a_function。
如果我设置一些条件来grep我想要的hwnd,我们需要产生hwnd id
是否有方法可以从a_function访问某些返回/产量。而不是函数EnumWindows将grep返回。
答案 0 :(得分:1)
EnumWindows
不返回任何内容。通常从中检索结果的方式通常是使回调函数将数据存储在全局中。在this question中有一个例子。
另一种方法是将一个可变容器对象(例如list
)作为extra
参数传递,然后在每次调用时将其作为第二个参数传递给回调(第一个)参数是一个窗口句柄。)
这是一个使用第二种技术的示例,它将本地列表对象传递给回调函数修改的EnumWindows()
,但前提是该窗口可见。
import win32gui
def my_callback(hwnd, list_object):
if win32gui.IsWindowVisible(hwnd):
title = win32gui.GetWindowText(hwnd)
if title:
list_object.append(title)
def print_windows_titles():
my_list = [] # local variable
win32gui.EnumWindows(my_callback, my_list) # populates my_list
# print result of calling EnumWindows
print('Titles of Visible Windows:')
for window_title in my_list:
print(' {!r}'.format(window_title))
print_windows_titles()