0
string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(registryKey))
        {
            (from a in key.GetSubKeyNames()
             let r = key.OpenSubKey(a)
             select new
             {
                 Application = r.GetValue("DisplayName")
             }).ToList().FindAll(c => c.Application != null).ForEach(c => Debug.WriteLine(c.Application));

此代码段显示注册表中应用程序的所有名称。我需要执行应用程序的 exe 文件的路径,并且我需要知道如何使用 Process.Start() 运行它们;

4

1 回答 1

1

在 Windows 中的任何地方都没有明确的来源。最接近的方法是枚举开始菜单。查看这篇文章以了解如何做到这一点:以 编程方式访问所有用户开始菜单

基本上,您需要调用 SHGetSpecialFolderPath API 来检索开始菜单的位置,然后枚举该路径中的所有快捷方式。

这个stackoverflow问题讨论了如何从快捷方式中提取图标;您可以使用相同的方法提取启动应用程序所需的工作路径和可执行文件: 从 Windows .lnk(快捷方式)文件中提取图标

于 2010-03-05T23:50:22.627 回答