# Компьютерные технологии > Прикладное программирование > C\C++ >  Запуск сторонней программы

## StupidSoldier

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

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

----------


## SpamGun

Как-то так:

Получение значений из реестра (пример выдран из работающей функции и немного упрощен)

```
// Путь к ключу, ветка
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 Но мало ли кому-то другому пригодится.

----------

