16.10.2013, 06:31 | #1 |
Участник
|
Value веток реестра
Хочу получить список установленных программ, руководствуюсь http://it-talk.org/topic10081.html
Никак не получается получить именно Value строки DisplayName(как в примере), да и собственно любой другой тоже. X++: #WinAPI int key, i; container c; ; key = WinAPI::regOpenKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", #KEY_READ); if (key) { while (WinAPI::regEnumKey(key,i)) { //if (WinAPI::regEnumKey(key,i) == "{29E5EA97-5F74-4A57-B8B2-D4F169117183}") { info(strfmt("%1: %2", i, WinAPI::regEnumKey(key,i))); //c = WinAPI::regGetValue(key,''); c = WinAPI::regGetValue(key,'DisplayName'); info(con2str(c)); c = WinAPI::regEnumValue(key,i); info(con2str(c)); } i++; } WinAPI::regCloseKey(key); info("Ключ найден"); } else { warning("Ключа нет"); } |
|
16.10.2013, 09:26 | #2 |
Молодой, подающий надежды
|
Видимо, надо брать значение из вложенного ключа. Попробуйте так:
X++: #WinAPI int key, subKey, i; container c; ; key = WinAPI::regOpenKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", #KEY_READ); if (key) { while (WinAPI::regEnumKey(key,i)) { //if (WinAPI::regEnumKey(key,i) == "{29E5EA97-5F74-4A57-B8B2-D4F169117183}") { info(strfmt("%1: %2", i, WinAPI::regEnumKey(key,i))); subKey = WinAPI::regOpenKey(key, WinAPI::regEnumKey(key, i), #KEY_READ); c = WinAPI::regGetValue(subKey,'DisplayName'); info(con2str(c)); } i++; } WinAPI::regCloseKey(key); info("Ключ найден"); } else { warning("Ключа нет"); }
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: Player1 (2). |