-1

您好,我正在尝试制作“用于显示 Windows 更新历史记录的 Python 脚本”。我是 python 新手,无法找到有关 pywin32 模块的太多信息。如果有人有这方面的一些信息或示例,将不胜感激。

4

1 回答 1

0

以下脚本在 Windows 10 上为我工作(需要先运行pip install -U pywinauto):

from __future__ import print_function
from pywinauto import Application

Application().start('control.exe')
app = Application(backend='uia').connect(path='explorer.exe', title='Control Panel')

app.window(title='Control Panel').ProgramsHyperlink.invoke()
app.wait_cpu_usage_lower(threshold=0.5, timeout=30, usage_interval=1.0)

app.window(title='Programs').child_window(title='View installed updates', control_type='Hyperlink').invoke()
app.wait_cpu_usage_lower(threshold=0.5, timeout=30, usage_interval=1.0)

list_box = app.InstalledUpdates.FolderViewListBox

items = list_box.descendants(control_type='ListItem')
all_updates = [item.window_text() for item in items]
print('\nAll updates ({}):\n'.format(len(all_updates)))
print(all_updates)

windows_items = list_box.child_window(title_re='^Microsoft Windows.*', control_type='Group').descendants(control_type='ListItem')
windows_updates = [item.window_text() for item in windows_items]
print('\nWindows updates only ({}):\n'.format(len(windows_updates)))
print(windows_updates)

PS 仅使用 pyWin32 编写这样的脚本是不可能的。pywinauto使用comtypes包作为 MS UI 自动化技术使用的依赖项(如backend='uia'脚本中所述)。

PPS 在短短一个小时内从头开始编写脚本(但我是 pywinauto 维护者:))。

于 2017-02-27T17:22:34.043 回答