要求是“我想要在c#中只检查指定程序是否安装在机器中的程序”并显示程序是否已安装的消息。
实际上,我在c#中有一个项目程序,我希望在首先加载我的项目之后首先检查应用程序,然后检查我的机器上是否安装了VSS,因为我的项目需要VSS。
我的操作系统是Windows 7。
由于 侯赛因
答案 0 :(得分:0)
Martinho Fernandes问了一个关于操作系统的公平问题。
如果使用Windows,大多数情况下您可以从注册表中获取此数据 - 应用程序在安装时会创建各种注册表项。在这种情况下,存在或不存在特定的一个或多个密钥。
答案 1 :(得分:0)
在大多数情况下,您可以通过注册表项检查所有已安装的程序。但请注意,这取决于安装程序是否在安装程序时做了所有正确的操作。
以下代码应该有效:
static void GetInstalled()
{
string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
{
foreach (string skName in rk.GetSubKeyNames())
{
using (RegistryKey sk = rk.OpenSubKey(skName))
{
Console.WriteLine(sk.GetValue("DisplayName"));
}
}
}
}