【发布时间】:2014-01-17 00:51:43
【问题描述】:
我正在尝试在 Python3.3 中使用 ctypes 获取所有可见窗口的列表
但是使用我拥有的代码,不会返回一个窗口。 EnumWindows函数失败,返回错误码为0。
import ctypes
user32 = ctypes.windll.user32
def worker(hwnd, lParam):
length = user32.GetWindowTextLengthW(hwnd) + 1
buffer = ctypes.create_unicode_buffer(length)
user32.GetWindowTextW(hwnd, buffer, length)
print("Buff: ", repr(buffer.value))
a = ctypes.WINFUNCTYPE(ctypes.c_bool,
ctypes.POINTER(ctypes.c_int),
ctypes.POINTER(ctypes.c_int))(worker)
if not user32.EnumWindows(a, True):
print("Err: ", ctypes.windll.kernel32.GetLastError())
这是当前的输出:
Buff: ''
Err: 0
这是我所期望的:
Buff: 'Python 3.3.2 shell'
Buff: 'test.py - C:\Users\...'
[...]
您能指出我实现这一目标的正确方向吗?提前致谢。
【问题讨论】: