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