如何使用Python检查Windows中是否安装了应用程序

16 浏览
0 Comments

如何使用Python检查Windows中是否安装了应用程序

我正在尝试创建一个程序,如果Windows上尚未安装应用程序,则安装该应用程序。我知道可执行文件的文件名,但对其它信息一无所知。我希望查询操作系统来检查是否已安装了已知名称或文件名的应用程序。\n目前我只有以下内容:\n

def IsProgramInstalled(ProgramName):    
    """检查是否已安装ProgramName。"""

\n如果有人知道答案,非常感谢,因为我在任何地方都找不到。

0
0 Comments

这段代码是一个使用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', ''))

使用这段代码,至少可以有两种方式来获取已安装应用程序的可执行文件。如果这个解决方法可行,请提前告知,谢谢。

0
0 Comments

如何使用Python检查Windows中是否安装了应用程序

在Stack Overflow论坛的一个问题中,有人询问如何使用Python检查Windows中是否安装了应用程序,提供了一种基于已安装程序列表的解决方案。该问题指出,使用which命令无法检测用户安装的程序或不在PATH中的程序。

解决方案如下:

首先,需要导入winregwin32con模块。

然后定义一个名为foo的函数,该函数接受两个参数:hive和flag。函数内部通过winreg.ConnectRegistry连接到注册表,并通过winreg.OpenKey打开指定路径下的注册表项,获取已安装程序的数量。然后使用winreg.EnumKeywinreg.OpenKey获取每个已安装程序的显示名称和卸载路径,并将其存储在一个列表中。最后返回该列表。

接下来,通过调用foo函数,分别传入win32con.HKEY_LOCAL_MACHINEwin32con.KEY_WOW64_32KEY参数,获取32位系统中已安装程序的列表,并将其存储在变量x中。再次调用foo函数,传入win32con.HKEY_LOCAL_MACHINEwin32con.KEY_WOW64_64KEY参数,获取64位系统中已安装程序的列表,并将其存储在变量y中。最后,调用foo函数,传入win32con.HKEY_CURRENT_USER0参数,获取当前用户已安装程序的列表,并将其存储在变量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_MACHINEwin32con.KEY_WOW64_64KEY参数,获取64位系统中安装文件夹和子文件夹的列表,并将其存储在变量w中。

使用print('\n'.join(x for x in [x for x in w if "My Application Name" in x]))可以打印出包含指定应用程序名称的安装文件夹和子文件夹列表。

这样,通过以上两个函数和打印出的列表,我们可以检查Windows中是否安装了指定的应用程序,并获取其安装位置。

0
0 Comments

在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

0