【问题标题】:pywinauto/examples/uninstall_7zip.py doesn't work on Windows 10pywinauto/examples/uninstall_7zip.py 在 Windows 10 上不起作用
【发布时间】:2020-01-23 17:25:32
【问题描述】:

是否有人将“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程序。下面是到达卸载窗口的代码sn-p:

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)

【问题讨论】:

  • 请详细说明“不起作用”和“失败”。
  • 如果您尝试在 Windows 10 上运行 7-zip 程序,它会因为以下原因而失败 -
  • 因为什么原因?
  • 以下代码失败并显示“没有与您的搜索匹配的项目”==> 尝试:NewWindow.AddressBandRoot.click_input() NewWindow.type_keys(r'Control Panel\Programs\Programs and Features{ENTER}', with_spaces=True, set_foreground=False)
  • @Joseph Sible-Reinstate Monica,我修改了代码,我可以进入卸载窗口,但是无法选择要卸载的程序,下面是修改后的程序-

标签: pywinauto


【解决方案1】:

更新程序以从控制面板卸载 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)

在此之后,我无法弄清楚如何将控制权转移到生成的窗口,然后单击“下一步”按钮。 所以混合了pyautogui命令,因为卸载窗口处于活动状态,它正在接收键盘按键 pyautogui.press('enter') => repeat this 3 times to click Next on all windows

【讨论】:

  • @Vasily Ryabov,需要你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 2017-04-26
  • 2017-11-18
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多