自动卸载Windows应用程序

问题描述 投票:0回答:1

我正在尝试使用7z卸载的Vasily Ryabov示例在Windows上卸载名为BlueStacks App Player的应用程序。

我收到错误:

C:\ Users \ ADMIN \ PycharmProjects \ untitled1 \ venv \ Scripts \ python.exe

C:/Users/ADMIN/PycharmProjects/untitled1/uninstall_software.py 追溯(最近一次通话):文件 “ C:/用户/ADMIN/PycharmProjects/untitled1/uninstall_software.py”,行 5,在 资源管理器= pywinauto.Application()。connect(path ='explorer.exe')文件 “ C:\ Users \ ADMIN \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pywinauto \ application.py”, 1005线,在连接中 self .__ warn_incorrect_bitness()文件“ C:\ Users \ ADMIN \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pywinauto \ application.py”, 第1083行,位于__warn_incorrect_bitness中 如果self.backend.name =='win32'和self.is64bit()!= is_x64_Python():文件 “ C:\ Users \ ADMIN \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pywinauto \ application.py”, 1098行,在is64bit中 返回handleprops.is64bitprocess(self.process)文件“ C:\ Users \ ADMIN \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ pywinauto \ handleprops.py”, is64bitprocess中的第183行 phndl = win32api.OpenProcess(win32con.MAXIMUM_ALLOWED,0,process_id)pywintypes.error:(87,'OpenProcess','参数为 不正确。']

以退出代码1完成的过程

代码是:

from __future__ import print_function
import pywinauto

pywinauto.Application().start(r'explorer.exe')
explorer = pywinauto.Application().connect(path='explorer.exe')

# Go to "Control Panel -> Programs and Features"
NewWindow = explorer.window_(top_level_only=True, active_only=True, class_name='CabinetWClass')
try:
    NewWindow.AddressBandRoot.ClickInput()
    NewWindow.TypeKeys(r'Control Panel\Programs\Programs and Features{ENTER}', with_spaces=True, set_foreground=False)
    ProgramsAndFeatures = explorer.window_(top_level_only=True, active_only=True, title='Programs and Features', class_name='CabinetWClass')

    # wait while list of programs is loading
    explorer.WaitCPUUsageLower(threshold=5)

    item_7z = ProgramsAndFeatures.FolderView.GetItem('BlueStacks App Player')
    item_7z.EnsureVisible()
    item_7z.ClickInput(button='right', where='icon')
    explorer.PopupMenu.MenuItem('Uninstall').Click()

    Confirmation = explorer.window_(title='Programs and Features', class_name='#32770', active_only=True)
    if Confirmation.Exists():
        Confirmation.Yes.ClickInput()
        Confirmation.WaitNot('visible')

    WindowsInstaller = explorer.window_(title='Windows Installer', class_name='#32770', active_only=True)
    if WindowsInstaller.Exists():
        WindowsInstaller.WaitNot('visible', timeout=20)

    SevenZipInstaller = explorer.window_(title='BlueStacks App Player', class_name='#32770', active_only=True)
    if SevenZipInstaller.Exists():
        SevenZipInstaller.WaitNot('visible', timeout=20)

    if 'BlueStacks App Player' not in ProgramsAndFeatures.FolderView.Texts():
        print('OK')
finally:
    NewWindow.Close()
python uninstall pywinauto rpa
1个回答
0
投票

您必须以管理员身份启动脚本。 UAC确认不能通过OS设计自动执行(出于安全原因)。因此,您必须先禁用UAC,然后按照以下答案以管理员身份重新启动脚本:https://stackoverflow.com/a/41930586/3648361

© www.soinside.com 2019 - 2024. All rights reserved.