如何通过命令获取已安装应用程序的 ProgID?
How to get the ProgID of an installed application by a command?
有些应用程序不是按名称而是按 ProgID 显示的,有什么方法可以在注册表中获取该键的名称?
https://docs.microsoft.com/en-us/windows/win32/com/-progid--key
Microsoft 建议 ISV 以 Company.Appname
或 Company.Appname.Suffix
的形式创建 progid,但这无关紧要,因为您感兴趣的卸载密钥名称实际上根本不是 progid! file/protocol 协会和 COM 使用 Progids。某些浏览器使用 Appname.Hash
,其中哈希值由 hashing the path.
计算得出
卸载密钥名称可以是任何名称(但希望不会与其他任何人冲突)。 MSI 安装程序使用 GUID(此 GUID 映射到与 MSI 相关的内容,the product code)。其他安装程序经常使用应用程序名称的一些变体。
您应该枚举所有卸载注册表项,并将项名称的开头与您感兴趣的任何应用程序进行比较 and/or 查看卸载项中的字符串(如 DisplayName、Publisher 和 UninstallString)。
Powershell 知道如何映射 MSI GUID:
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name
有些应用程序不是按名称而是按 ProgID 显示的,有什么方法可以在注册表中获取该键的名称?
https://docs.microsoft.com/en-us/windows/win32/com/-progid--key
Microsoft 建议 ISV 以 Company.Appname
或 Company.Appname.Suffix
的形式创建 progid,但这无关紧要,因为您感兴趣的卸载密钥名称实际上根本不是 progid! file/protocol 协会和 COM 使用 Progids。某些浏览器使用 Appname.Hash
,其中哈希值由 hashing the path.
卸载密钥名称可以是任何名称(但希望不会与其他任何人冲突)。 MSI 安装程序使用 GUID(此 GUID 映射到与 MSI 相关的内容,the product code)。其他安装程序经常使用应用程序名称的一些变体。
您应该枚举所有卸载注册表项,并将项名称的开头与您感兴趣的任何应用程序进行比较 and/or 查看卸载项中的字符串(如 DisplayName、Publisher 和 UninstallString)。
Powershell 知道如何映射 MSI GUID:
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name