Я пытаюсь написать (как мне казалось, будет) простой скрипт на C ++ для поиска в реестре (в частности, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Uninstall) и вернуть значение значения DisplayName.
Я просмотрел документы MSDN и несколько часов поиска в Google, к сожалению, я застрял.
#define BUFFER 8192
char value[255];
DWORD BufferSize = BUFFER;
if(RegGetValue(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"),
_T("DisplayName"),
RRF_RT_ANY,
NULL,
(PVOID)&value,
&BufferSize)
)
{
_tprintf(TEXT("(%d) %s - %s\n"), i+1, achKey, value);
}
Теперь мне нужно иметь возможность добавить achKey ко 2-му параметру RegGetValue, чтобы он получал правильные значения при циклическом просмотре каждого подраздела.
Я пробовал миллион разных вещей, к сожалению, мой опыт в C ++ довольно ограничен, и мои навыки работы с Google, видимо, тоже требуют некоторой работы.
Edit:
achKey - это имя ключа:
Пример: драйверы NVIDIA
Поэтому при добавлении второй параметр должен выглядеть следующим образом:
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\NVIDIA Drivers
Вот ссылка на MSDN на RegGetValue:
http://msdn.microsoft.com/en-us/library/ms724868%28v=vs.85%29.aspx
Я также пробовал что-то вроде:
wcscat(_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"), achKey)
Он скомпилируется, но затем при запуске вылетает.