Как получить расположение установки из реестра в C#?
Всем привет
я хочу получить место установки всех продуктов в моем приложении поэтому для этой цели я использую класс реестра и использую для него строковое значение ниже
"Software\корпорация Майкрософт\каталог\Windows\\CurrentVersion будет\\удалить"
и
"Программное обеспечение\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Удалить" для 64-битной версии.
но он не дает мне подробностей обо всех продуктах например
notepad ++ доступен в приведенном выше пути в редакторе реестра, но с помощью моего кода он не отображает значения для notepad.
Что я уже пробовал:
ниже приведен мой код
<pre> StreamWriter sw = new StreamWriter(@"D:\localmachineProducts64.txt", true); using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey)) { foreach (string skName in rk.GetSubKeyNames()) { using (RegistryKey sk = rk.OpenSubKey(skName)) { try { sw.Write(sk.GetValue("DisplayName") + "\t" + sk.GetValue("InstallLocation")); sw.Write(sw.NewLine); count++; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } sw.Write("Total count :=" + count); } sw.Close();
Richard MacCutchan
Пойдите и посмотрите в реестре, чтобы увидеть, какая информация там есть. Не все продукты будут вставлять все поля.
Richard Deeming
Выполняется ли ваш код в 32-разрядном приложении?
OpenSubKey() возвращает null для раздела реестра, который я вижу в regedit.exe[^]