К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

4. Создание процесса с параметрами

Листинг 4.3. Программа процесса, который создает процесс с новой консолью

#include <windows.h>
#include <conio.h>

int main()
{
char lpszCommandLine[] = "C:\\ConsoleProcess.exe p1 p2 p3";

STARTUPINFO si;
PROCESS_INFORMATION piCom;

ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);

// создаем новый консольный процесс
CreateProcess(NULL, lpszCommandLine, NULL, NULL, FALSE,
CREATE_NEW_CONSOLE, NULL, NULL, &si, &piCom);
// закрываем дескрипторы этого процесса
CloseHandle(piCom.hThread);
CloseHandle(piCom.hProcess);

_cputs("The new process is created.\n");
_cputs("Press any key to finish.\n");
_getch();

return 0;
}

Отличие этой программы от программы, приведенной в листинге 4.2, состоит в том, что мы передаем системе имя нового процесса и его параметры через командную строку. В этом случае имя нового процесса может и не содержать полный путь к ехе-файлу, а только имя самого ехе-файла. При использовании параметра lpCommandLine система для запуска нового процесса осуществляет поиск требуемого ехе-файла в следующей последовательности каталогов:
- каталог, из которого запущено приложение;
- текущий каталог родительского процесса;
- системный каталог Windows;
- каталог Windows;
- каталоги, которые перечислены в переменной PATH среды окружения.

 


Предыдущая        В начало страницы       Следующая
4