pywinauto / examples / uninstall_7zip.py не работает на Windows 10 - PullRequest
0 голосов
/ 13 января 2020

Кто-нибудь перенес пример "pywinauto / examples / uninstall_7zip.py" на windows 10? Я попытался запустить его, но это не удалось:

NewWindow.type_keys(r'Control Panel\Programs\Programs and Features{ENTER}', with_spaces=True, 
set_foreground=False)  (Fails in this line)

Я изменил, чтобы открыть окно удаления панели управления, не имея возможности получить / выбрать программу 7-Zip. Ниже приведен фрагмент кода для доступа к окну удаления:

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

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

# Go to "Uninstall a program"
app.window(title='Programs').child_window(title='Uninstall a program', 
control_type='Hyperlink').invoke()
app.wait_cpu_usage_lower(threshold=0.5, timeout=30, usage_interval=1.0)

1 Ответ

1 голос
/ 23 января 2020

Обновлена ​​программа для удаления 7-zip-программы с панели управления -

from pywinauto.application import Application
from pywinauto import Desktop
import time

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

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

# Go to "Uninstall a program"
app.window(title='Programs').child_window(title='Uninstall a program', 
control_type='Hyperlink').invoke()
app.wait_cpu_usage_lower(threshold=0.5, timeout=30, usage_interval=1.0)


NewWindow = app.window(top_level_only=True, active_only=True, 
class_name='CabinetWClass')

NewWindow.type_keys(r'7-Zip{ENTER}', with_spaces=True, set_foreground=False)
time.sleep(10)

После этого я не могу понять, как передать управление в открывшееся окно, и нажимаю кнопку «Далее». поэтому смешанные команды pyauto gui, поскольку деинсталляция windows активна, она получает нажатие клавиши клавиатуры pyautogui.press('enter') => repeat this 3 times to click Next on all windows

...