2010-03-05 92 views
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()來運行它們。獲取註冊表中所有應用程序的路徑

回答

1

在Windows的任何地方都沒有確切的來源。最接近的是通過枚舉開始菜單。查看這篇文章如何做到這一點: Programmatically access All Users Start Menu

基本上,您需要調用SHGetSpecialFolderPath API來檢索開始菜單的位置,然後枚舉該路徑中的所有快捷方式。

這個stackoverflow問題談到如何從快捷方式中提取圖標;您可以使用相同的方法來提取您需要啓動應用程序的工作路徑和可執行文件: Extract Icon from Windows .lnk (shortcut) file

相關問題