Структура STARTUPINFO


Структура STARTUPINFO используется с функциями CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW, чтобы определить оконный терминал, рабочий стол, стандартный дескриптор и внешний вид основного окна для нового процесса.

Синтаксис

typedef struct _STARTUPINFO {                     // si

DWORD cb;

LPTSTR lpReserved;

LPTSTR lpDesktop;

LPTSTR lpTitle;

DWORD dwX;

DWORD dwY;

DWORD dwXSize;

DWORD dwYSize;

DWORD dwXCountChars;

DWORD dwYCountChars;

DWORD dwFillAttribute;

DWORD dwFlags;

WORD wShowWindow;

WORD cbReserved2;

LPBYTE lpReserved2;

HANDLE hStdInput;

HANDLE hStdOutput;

HANDLE hStdError;

} STARTUPINFO, *LPSTARTUPINFO;

Члены структуры

cb

Устанавливает размер структуры, в байтах.

lpReserved

Зарезервировано. Установите этот член в значение ПУСТО (NULL) перед передачей структуры в CreateProcess.

lpDesktop

Windows NT/2000/XP: Указатель на строку символов с нулем в конце, которой устанавливает или имя рабочего стола или, и имя оконной станции и рабочего стола для этого процесса. Наклонная черта влево (обратный слеш) в строке, обозначает, что строка включает в себя, и имя оконной станции и рабочего стола.

Для функций CreateProcess и CreateProcessAsUser, если этот член имеет значение ПУСТО (NULL), новый процесс наследует рабочий стол и оконный терминал своего родительского процесса. Если этот член - пустая строка, процесс не наследует рабочий стол и оконный терминал своего родительского процесса; вместо этого, система выясняет, нужно ли создавать новый рабочий стол и оконный терминал. Если представленный пользователь уже имеет рабочий стол, система использует существующий рабочий стол.

Для функции CreateProcessWithLogonW, если этот член имеет значение ПУСТО (NULL) или он пустая строка, новый процесс наследует рабочий стол и оконный терминал своего родительского процесса. Функция CreateProcessWithLogonW добавляет разрешение для заданной учетной записи пользователя использовать унаследованный оконный терминал и рабочий стол. Иначе, если этот член устанавливает рабочий стол, он определяет ответственность приложения за добавление разрешения в заданной учетной записи пользователя для заданного оконного терминала и рабочего стола.

lpTitle

Для консольных процессов, это - заголовок, который показывается в области заголовка, если создается новое консольное окно. Если параметр имеет значение ПУСТО (NULL), вместо него используется имя исполняемого файла как заголовок окна. Этот параметр должен иметь значение ПУСТО (NULL) для графического интерфейса пользователя (GUI) или консольных процессов, которые не создают новое консольное окно.

dwX

Если член dwFlags установлен в STARTF_USEPOSITION, этот член является смещением по X верхнего левого угла созданного окна, в пикселях. Иначе этот член игнорируется.

Смещение отсчитывается от верхнего левого угла экрана. Смещения отсчитываются от верхнего левого угла экрана. Для процессов GUI установленная позиция используется впервые тогда, когда новый процесс вызывает CreateWindow, чтобы создать перекрывающее окно, если параметр X функции CreateWindow является CW_USEDEFAULT.

dwY

Если член dwFlags установлен в STARTF_USEPOSITION, этот член является смещением по Y верхнего левого угла созданного окна, в пикселях. Иначе этот член игнорируется.

Смещение отсчитывается от верхнего левого угла экрана. Смещения отсчитываются от верхнего левого угла экрана. Для процессов GUI установленная позиция используется впервые тогда, когда новый процесс вызывает CreateWindow, чтобы создать перекрывающее окно, если параметр Y функции CreateWindow является CW_USEDEFAULT.

dwXSize

Если член dwFlags установлен в STARTF_USESIZE, этот член является шириной окна, в пикселях, если окно создается. Иначе этот член игнорируется.

Для процессов GUI этот параметр используется впервые тогда, когда новый процесс вызывает CreateWindow, чтобы создать перекрывающее окно, если параметр nWidth функции CreateWindow является CW_USEDEFAULT.

dwYSize

Если член dwFlags установлен в STARTF_USESIZE, этот член является высотой окна, в пикселях, если окно создается. Иначе этот член игнорируется.

Для процессов GUI этот параметр используется впервые тогда, когда новый процесс вызывает CreateWindow, чтобы создать перекрывающее окно, если параметр nHeight функции CreateWindow является CW_USEDEFAULT.

dwXCountChars,

Windows NT/2000/XP: Если член dwFlags установлен в STARTF_USECOUNTCHARS,. если создается новое консольное окно в консольном процессе, этот член определяет ширину экранного буфера дисплея в столбцах символов. Иначе этот член игнорируется.

dwYCountChars

Windows NT/2000/XP: Если член dwFlags установлен в STARTF_USECOUNTCHARS, если создается новое консольное окно в консольном процессе, этот член определяет высоту экранного буфера дисплея в строках символов. Иначе этот член игнорируется.

dwFillAttribute

Если член dwFlags установлен в STARTF_USEFILLATTRIBUTE, этот член определяет начальный цвет текста и фона, если в консольной программе создается новое консольное окно. Иначе этот член игнорируется.

Это значение может быть любой комбинацией нижеследующих значений: FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN, BACKGROUND_RED и BACKGROUND_INTENSITY. Например, комбинация значений ниже производит красный текст на белом фоне:

FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE

dwFlags

Это поле битов, которое устанавливает, будут ли использованы некоторые члены STARTUPINFO, когда процесс создает окно. Этот член может состоять из одного или нескольких значений:

 

Флажок

Предназначение

STARTF_FORCEONFEEDBACK

Указывает, что курсор находится в режиме обратной связи в течение двух секунд после того, как была вызвана функция CreateProcess. Курсор, Работающий в Фоновом режиме, отображается на экране (см. вкладку Указатели в утилите Панели управления мышью).

Если в течение этих двух секунд делается первым вызов GUI, система дает еще пять секунд этому процессу. Если в течение этих пяти секунд процесс выводит на экран окно, система дает еще пять секунд процессу, чтобы закончить рисовать окно.

Система выключает обратную связь с курсором после первого вызова функции GetMessage, независимо от того, рисует ли процесс.

STARTF_FORCEOFFFEEDBACK

Указывает, что обратная связь с курсором принудительно отключена до тех пор, пока не стартует процесс. Нормальный Выбор курсора отображается на экране.

STARTF_RUNFULLSCREEN

Windows NT /2000/XP: Указывает, что процесс должен быть, запущен в полноэкранном режиме, а не в оконном режиме.

Этот флажок допустим только для консольных программ, запускающихся на x86 компьютере.

STARTF_USECOUNTCHARS

Windows NT /2000/XP: Если это значение не установлено, члены dwXCountChars и dwYCountChars структуры игнорируются.

STARTF_USEFILLATTRIBUTE

Если это значение не установлено, член dwFillAttribute структуры игнорируется.

STARTF_USEPOSITION

Если это значение не установлено, то члены dwX и dwY структуры игнорируются.

STARTF_USESHOWWINDOW

Если это значение не установлено, то член wShowWindow структуры игнорируется.

STARTF_USESIZE

Если это значение не установлено, то члены dwXSize, и dwYSize структуры игнорируются.

STARTF_USESTDHANDLES

Устанавливается стандартный ввод данных, стандартный вывод и стандартная обработка ошибок дескрипторов процесса, определенных в членах hStdInput, hStdOutput и hStdError структуры STARTUPINFO. Для того, чтобы это работало должным образом, дескриптор должен быть наследуемым, а параметр fInheritHandles функции CreateProcess должен быть установлен в значение ИСТИНА (TRUE).

Если это значение не установлено, члены hStdInput, hStdOutput, и hStdError структуры STARTUPINFO игнорируются.

wShowWindow

Если dwFlags установлен в STARTF_USESHOWWINDOW, этот член может быть быть любой из SW_ констант, определенных в WINUSER.H. Иначе этот член структуры игнорируется.

Для процесса GUI параметр wshowWindow устанавливает значение по умолчанию, когда впервые вызывается функция ShowWindow. Параметр nCmdShow функции ShowWindow игнорируется. При последующих вызовах ShowWindow, член wshowWindow используется, если параметр nCmdShow функции ShowWindow установлен в SW_SHOWDEFAULT.

cbReserved2

Зарезервирован, должен быть нуль.

lpReserved2

Зарезервирован, должен быть нуль.

hStdInput

Если dwFlags установлен в STARTF_USESTDHANDLES, этот член определяет дескриптор, который будет использован как стандартный дескриптор ввода для процесса. Иначе этот член игнорируется.

hStdOutput

Если dwFlags установлен в STARTF_USESTDHANDLES, этот член определяет дескриптор, который будет использован как стандартный дескриптор вывода для процесса. Иначе этот член игнорируется.

hStdError

Если dwFlags установлен в STARTF_USESTDHANDLES, этот член определяет дескриптор, который будет использован как стандартный дескриптор ошибки для процесса. Иначе этот член игнорируется.

Замечания

Для процесса графического интерфейса пользователя (GUI), эта информация воздействует на первое окно, созданное функцией CreateWindow и показанное на экране функцией ShowWindow. Для консольных процессов, эта информация воздействует на консольное окно, если новая консоль создана процессом. Процесс может использовать функцию GetStartupInfo, чтобы извлечь структуру STARTUPINFO определенную тогда, когда процесс был создан.

Если процесс GUI стартовал, и не устанавливались ни флажок STARTF_FORCEONFEEDBACK, ни STARTF_FORCEOFFFEEDBACK, процессом используется курсор с обратной связью. Процесс GUI является одной из подсистем, которая определяется как "окна".

Смотри также

Краткий обзор Процессы и потоки, Структуры, используемые процессами и потоками, CreateProcess, CreateWindow, CreateProcessAsUser, CreateProcessWithLogonW, GetMessage, GetStartupInfo, PeekMessage, ShowWindow, WinMain

Размещение и совместимость STARTUPINFO

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Нет

Используемая библиотека

Нет

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Да

Замечания по платформе

Не имеется

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz