Как да стартирате една програма от друга

Автор: Артур Вартанов

Има няколко начина за стартиране на една програма от друга.

1. WinExec е остаряла функция, използвана само за съвместимост с 16-битов Windows. Не се препоръчва за използване в Win32 приложения.

2. CreateProcess - WinExec заместител на Win32.

опции на командния ред

атрибути за сигурност на процеса (има значение само за NT/2000)

атрибути за сигурност на основната нишка (има значение само за NT/2000)

ако bInheritHandles == TRUE, тогава създаденият процес (работещата програма) наследява манипулаторите на изпълняваната програма

опции за създаване. Тук можете да посочите класа на приоритет на създадения процес и някои допълнителни параметри

указател към блока на средата или NULL, тогава се използва блокът на средата на родителя

текуща директория или NULL, тогава се използва текущата директория на родителя

указател към структура STARTUPINFO, която указва позицията на главния прозорец

информация за създадения процес ще бъде написана тук

Пример за стартиране на notepad.exe.

Обърнете внимание на факта, че е посочен пълният път до файла notepad.exe. CreateProcess не търси файлове в пътищата, посочени в променливата PATH.

3. ShellExecute и ShellExecuteEx - тези функции са предназначени не само за стартиране на програми, но и за отваряне и отпечатване на различни документи, т.е. стартирайте приложения, свързани с определени типове файлове. Ако, например, посочите mydoc.doc като име на файл, тогава ще се стартира приложението, свързано с файлове с разширение doc (Microsoft Word). Функциите ShellExecute и ShellExecuteEx, за разлика от CreateProcess, търсят файл в пътищата, посочени в променливатаПЪТЕКА.

Тази функция връща >32 при успех и