如何在使用c#的机器中检查特定应用程序是否安装

时间:2011-04-05 09:58:19

标签: c#

要求是“我想要在c#中只检查指定程序是否安装在机器中的程序”并显示程序是否已安装的消息。

实际上,我在c#中有一个项目程序,我希望在首先加载我的项目之后首先检查应用程序,然后检查我的机器上是否安装了VSS,因为我的项目需要VSS。

我的操作系统是Windows 7。

由于 侯赛因

2 个答案:

答案 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"));
                  }
            }
      }
}