Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Замечания. Процессу присваивается идентификатор
Процессу присваивается идентификатор. Идентификатор является правильным до тех пор, пока процесс не завершит работу. Он может быть использован, чтобы идентифицировать процесс, или открыть определяемый в функции OpenProcess дескриптор процесса. Начальный поток в процессе также получает свой идентификатор. Идентификатор правильный до тех пор, пока поток закончит свою работу и может быть использован, чтобы уникально идентифицировать поток в пределах системы. Эти идентификаторы возвращаются в структуре PROCESS_INFORMATION. Вызывающий поток может использовать функцию WaitForInputIdle, чтобы ждать до тех пор, пока новый процесс не завершит свою инициализацию и станет ждать от пользователя ввода данных без задержки ввода. Этот прием может быть полезным для синхронизации родительского и дочернего процессов, поскольку функция CreateProcess возвращает значение не ожидая, когда новый процесс закончит свою инициализацию. Например, создающий процесс должен использовать функцию WaitForInputIdle перед попыткой найти окно, связанное с новым процессом. Предпочтительным способом выключить процесс является использование функции ExitProcess, потому что эта функция уведомляет все динамически подключаемые библиотеки (DLL), связанные с процессом о приближающемся завершении работы. Другой способ завершения процесса не уведомляет связанные DLL.
Если приложение предусматривает блок конфигурации, информация текущего каталога системных дисков автоматически не передается новому процессу. Например, имеется переменная окружения, с названием =C:, значение которой - текущий каталог на диске C. Приложение должно позаботиться, чтобы передать новому процессу информацию о текущем каталоге. Поступая таким образом, приложение должно явно создать эти строки переменной окружения, отсортировывать их в алфавитном порядке (потому что система использует отсортированные переменные) и поместить их в блок конфигурации. Как правило, они пойдут в начале блока конфигурации благодаря порядку установленному сортировкой блока конфигурации. Один из способов получить переменную текущего каталога для диска X состоит в том, чтобы вызвать GetFullPathName (" X: ",..). Это освобождает прикладную программу от необходимости сканировать блок конфигурации. Если полный возвращенный путь является X:\, нет нужды передавать это значение как данные конфигурации, так как корневой директорией является заданный по умолчанию текущий каталог для диска X нового процесса.
Windows NT/2000/XP: Когда процесс создается с установленным флажком CREATE_NEW_PROCESS_GROUP, неявный вызов функции SetConsoleCtrlHandler (NULL, TRUE) делается от имени нового процесса; это означает то, что новый процесс имеет заблокированным сочетание клавиш CTRL+C. Это позволяет оболочкам обрабатывать CTRL+C непосредственно и выборочно передавать этот сигнал подпроцессам. Сочетание клавиш CTRL+BREAK не блокируется и может быть использовано для прерывания процесса / группы процессов. Windows 95/98/Me: Функция CreateProcessW поддерживается подпрограммой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в требованиях этой подпрограммы для систем Windows 95/98/Me. Date: 2015-07-27; view: 471; Нарушение авторских прав |