PDA

Просмотр полной версии : Запуск сторонней программы



StupidSoldier
08.06.2010, 16:51
помогите написать кусочек скрипта для программы которая:

1.Считывает значение из реестра
2.В случае, если значение считалось - запускает другую программу расположенную в той же папке.

SpamGun
06.09.2010, 03:29
Как-то так:

Получение значений из реестра (пример выдран из работающей функции и немного упрощен)
// Путь к ключу, ветка
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 Но мало ли кому-то другому пригодится.