Как-то так:
Получение значений из реестра (пример выдран из работающей функции и немного упрощен)
Код:
// Путь к ключу, ветка
TCHAR* currentKey = TEXT("SOFTWARE\\Abracadabra\\Path\\"));
HKEY* currentHKey = new HKEY(); // дескриптор ветки
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
currentKey,
0,
KEY_READ,
currentHKey);
DWORD size; // Длина значения
// Дважды вызываем RegQueryValueEx, сначала получим длину значения,
// потом получаем само значение в выделенный буфер
DWORD retCode = RegQueryValueEx(
*(hkey),
L"UninstallString",
NULL,
NULL,
NULL,
&size
);
// Проверим есть ли значение
if (retCode != ERROR_SUCCESS)
return;
// Выделяем буфер для значения
TCHAR* value = new TCHAR[size];
// Получаем значение
retCode = RegQueryValueEx(
*(hkey),
L"UninstallString",
NULL,
NULL,
(LPBYTE)value,
&size
);
Простой вариант запуска:
Код:
if((UINT)ShellExecute(hwnds::hWnd, L"open",
"app.exe", NULL, NULL, SW_SHOWNORMAL) <= 32)
; // Не удалось запустить приложение...
Само собой ТС это уже не нужно xD Но мало ли кому-то другому пригодится.
Социальные закладки