【问题标题】:get list of installed programs and their path in in listbox in c# [duplicate]在c#的列表框中获取已安装程序的列表及其路径[重复]
【发布时间】:2014-06-18 03:03:38
【问题描述】:

我想在一个字符串中获取系统中已安装程序的列表,并在另一个字符串中获取它们的相应路径,以便当我单击列表框中的名称时,该程序应该被执行。这是我尝试过的代码,但它似乎只给出了程序的名称而不是程序的位置。

string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
    foreach(string subkey_name in key.GetSubKeyNames())
    {
        using(RegistryKey subkey = key.OpenSubKey(subkey_name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}

【问题讨论】:

  • 有 900 亿次重复;一个月或更多次会被问到这个问题。请使用搜索功能。请注意,这是一个鲁莽的尝试。让应用程序管理自己的卸载程序,除非您正在编写操作系统。

标签: c# list path


【解决方案1】:

该注册表项将仅包含与卸载相关的信息。它不会知道程序可执行文件的实际名称或位置。

要获取安装程序列表及其可执行路径,请使用WMI。 SO有一个 Similar question 可以帮到你

【讨论】:

  • 我也使用过 WMI,但它并没有像 vlc 现实世界图标编辑器等提供所有已安装的程序。
猜你喜欢
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多