如何使用Python检查Windows中是否安装了应用程序
这段代码是一个使用Python的winapps模块来检查Windows系统中是否安装了特定应用程序的示例。代码通过遍历已安装的应用程序列表,判断应用程序的名称是否包含指定的字符串,如果是则输出应用程序的安装路径和卸载命令。
使用这段代码可以获得已安装应用程序的可执行文件路径,提供了两种获取路径的方式。
如果这个解决方法可行,请提前告知,谢谢。
文章整理如下:
我尝试使用Python模块winapps来实现一种不同的方法来检查Windows系统中是否安装了应用程序。下面是代码片段:
import winapps def chk_app_inst(str): for item in winapps.list_installed(): app_name = str if app_name in item.name: get_path = item.install_location get_uninstall_str = item.uninstall_string print('App path found:\t', get_path, '\nAlternative Path:\t', get_uninstall_str.replace('uninstall.exe', ''))
使用这段代码,至少可以有两种方式来获取已安装应用程序的可执行文件。如果这个解决方法可行,请提前告知,谢谢。
如何使用Python检查Windows中是否安装了应用程序
在Stack Overflow论坛的一个问题中,有人询问如何使用Python检查Windows中是否安装了应用程序,提供了一种基于已安装程序列表的解决方案。该问题指出,使用which
命令无法检测用户安装的程序或不在PATH中的程序。
解决方案如下:
首先,需要导入winreg
和win32con
模块。
然后定义一个名为foo
的函数,该函数接受两个参数:hive和flag。函数内部通过winreg.ConnectRegistry
连接到注册表,并通过winreg.OpenKey
打开指定路径下的注册表项,获取已安装程序的数量。然后使用winreg.EnumKey
和winreg.OpenKey
获取每个已安装程序的显示名称和卸载路径,并将其存储在一个列表中。最后返回该列表。
接下来,通过调用foo
函数,分别传入win32con.HKEY_LOCAL_MACHINE
和win32con.KEY_WOW64_32KEY
参数,获取32位系统中已安装程序的列表,并将其存储在变量x
中。再次调用foo
函数,传入win32con.HKEY_LOCAL_MACHINE
和win32con.KEY_WOW64_64KEY
参数,获取64位系统中已安装程序的列表,并将其存储在变量y
中。最后,调用foo
函数,传入win32con.HKEY_CURRENT_USER
和0
参数,获取当前用户已安装程序的列表,并将其存储在变量z
中。
使用print([x for x in x+y+z if "My Application Name" in x])
可以打印出包含指定应用程序名称的已安装程序列表。
然而,以上方法并不能告诉我们程序的安装位置。
为了解决这个问题,我们还需要定义一个名为bar
的函数。该函数与foo
函数类似,也接受两个参数:hive和flag。函数内部通过winreg.ConnectRegistry
连接到注册表,并通过winreg.OpenKey
打开指定路径下的注册表项,获取安装文件夹和子文件夹的数量。然后使用winreg.EnumValue
获取每个安装文件夹和子文件夹的路径,并将其存储在一个列表中。最后返回该列表。
通过调用bar
函数,传入win32con.HKEY_LOCAL_MACHINE
和win32con.KEY_WOW64_64KEY
参数,获取64位系统中安装文件夹和子文件夹的列表,并将其存储在变量w
中。
使用print('\n'.join(x for x in [x for x in w if "My Application Name" in x]))
可以打印出包含指定应用程序名称的安装文件夹和子文件夹列表。
这样,通过以上两个函数和打印出的列表,我们可以检查Windows中是否安装了指定的应用程序,并获取其安装位置。
在Windows中,使用Python如何检查应用程序是否已安装?
你可以使用shutil模块来检查程序是否已安装:
import shutil def is_program_installed(program_name): """检查程序program_name是否已安装。""" return shutil.which(program_name)
如果程序已安装,该函数将返回程序的路径;如果程序未安装,该函数将返回None
。
在我的情况下,如果我想知道git
是否已安装,我将得到:
git = is_program_installed("git") print(git) # 返回:/usr/bin/git
在Windows中,它应该返回类似于:
C:\Program Files\Git\bin\git.exe