|
|
#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("Ключа нет");
} |
|
|
|
|
#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). | |