Структура
STARTUPINFOСтруктура
STARTUPINFO используется с функциями CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW, чтобы определить оконный терминал, рабочий стол, стандартный дескриптор и внешний вид основного окна для нового процесса.Синтаксис
struct _STARTUPINFO { // si
} 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 |
Да |
Замечания по платформе |
Не имеется |