Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
02.05.2014
Размер:
41.9 Кб
Скачать

STARTUPINFO @font-face { font-family: Tahoma; } @font-face { font-family: Arial Unicode MS; } @font-face { font-family: @Arial Unicode MS; } @page Section1 {size: 595.3pt 841.9pt; margin: 2.0cm 42.5pt 2.0cm 3.0cm; mso-header-margin: 35.4pt; mso-footer-margin: 35.4pt; mso-paper-source: 0; } P.MsoNormal { FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: Tahoma; mso-style-parent: ""; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman" } LI.MsoNormal { FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: Tahoma; mso-style-parent: ""; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman" } DIV.MsoNormal { FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: Tahoma; mso-style-parent: ""; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman" } H1 { FONT-SIZE: 16pt; MARGIN: 12pt 0cm 3pt; FONT-FAMILY: Arial; mso-pagination: widow-orphan; mso-style-next: Обычный; mso-outline-level: 1; mso-font-kerning: 16.0pt } H3 { BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; FONT-SIZE: 13pt; PADDING-BOTTOM: 0cm; MARGIN: 12pt 0cm 3pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; FONT-FAMILY: Arial; mso-pagination: widow-orphan; mso-style-next: Обычный; mso-outline-level: 3; mso-border-bottom-alt: solid windowtext .5pt; mso-padding-alt: 0cm 0cm 1.0pt 0cm } H4 { FONT-SIZE: 10pt; MARGIN: 12pt 0cm 3pt; FONT-FAMILY: Tahoma; mso-pagination: widow-orphan; mso-bidi-font-size: 14.0pt; mso-bidi-font-family: "Times New Roman"; mso-style-next: Обычный; mso-outline-level: 4; text-shadow: auto } P.HelpBody { FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; FONT-FAMILY: "Arial Unicode MS"; mso-ansi-language: EN-US; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Tahoma; mso-style-name: "Help Body"; mso-layout-grid-align: none; mso-bidi-font-weight: normal } LI.HelpBody { FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; FONT-FAMILY: "Arial Unicode MS"; mso-ansi-language: EN-US; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Tahoma; mso-style-name: "Help Body"; mso-layout-grid-align: none; mso-bidi-font-weight: normal } DIV.HelpBody { FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; FONT-FAMILY: "Arial Unicode MS"; mso-ansi-language: EN-US; mso-pagination: widow-orphan; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Tahoma; mso-style-name: "Help Body"; mso-layout-grid-align: none; mso-bidi-font-weight: normal } DIV.Section1 { page: Section1 } STARTUPINFO      члены структуры

замечания

см. также

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

 

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: Указатель на строку с нольтерминатором, которая содержит либо только имя десктопа, либо и имя станции и десктопа для этого процесса. Обратный слэш в этой строке является показателем того, что строка включает в себя имена станции и десктопа. Иначе, строка интерпретируется как имя десктопа. Если параметр lpDesktop NULL, новый процесс наследует имена станции и десктопа родительского процесса.

 

lpTitle  

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

 

dwX, dwY  

Игнорируются, кроме тех случаев, когда dwFlags содержит флаг STARTF_USEPOSITION. Устанавливают смещения по осям X и Y, в пикселах, верхнего левого угла окна, если новое окно создаётся. Смещение отсчитывается относительно экрана. Для GUI-процессов указанная позиция используется только во время первого вызова процессом функции CreateWindow для создания перекрывающего окна, если параметр x функции CreateWindow равен CW_USEDEFAULT.

 

dwXSize, dwYSize  

Игнорируются, кроме тех случаев, когда dwFlags содержит флаг STARTF_USESIZE. Задают ширину (dwXSize) и высоту (dwYSize), нового создаваемого окна. Для GUI-процессов указанные значения используются только во время первого вызова процессом функции CreateWindow для создания перекрывающего окна, если параметр nWidth функции CreateWindow равен CW_USEDEFAULT.

 

dwXCountChars, dwYCountChars  

Игнорируются, кроме тех случаев, когда dwFlags содержит флаг STARTF_USECOUNTCHARS. Для консольных процессов, если создаётся консольное окно, dwXCountChars задаёт ширину экранного буфера в символьных столбцах, и dwYCountChars задаёт высоту экранного буфера в символьных строках. Эти значения игнорируются в GUI-процессах.

 

dwFillAttribute  

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

 

FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE

 

dwFlags  

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

 

Значение

Описание

STARTF_USESHOWWINDOW

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

STARTF_USEPOSITION

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

STARTF_USESIZE

 

STARTF_USECOUNTCHARS

Если не установлен, члены dwXCountChars и dwYCountChars игнорируются.

STARTF_USEFILLATTRIBUTE

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

STARTF_FORCEONFEEDBACK

Если установлен, то при вызове CreateProcess, курсор будет иметь вид фонового режима 2 секунды. Если в течение этого времени процесс выполнит первый вызов GUI, система даёт ещё 5 секунд процессу. Если в течение этого времени процесс показывает окно, система даёт ещё 5 секунд процессу для окончания прорисовки окна. Система убирает курсор фонового режима после первого вызова GetMessage, вне зависимости от того рисует ли процесс. Смотри более подробно в секции замечаний.

STARTF_FORCEOFFFEEDBACK

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

STARTF_USESTDHANDLES

Если установлен, организуется стандартный ввод-вывод процесса, стандартный обработчик ошибок в дескрипторы задаваемые членами структуры hStdInput, hStdOutput, и hStdError. Для правильной работы необходимо, чтобы параметр функции CreateProcess fInheritHandles, был равен TRUE.

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

 

wShowWindow  

Игнорируется, кроме тех случаев, когда dwFlags содержит флаг STARTF_USESHOWWINDOW. wShowWindow может быть равен любой из констант вида SW_константа определённых в WINUSER.H. Для GUI-процессов wShowWindow задаёт значение по умолчанию первого вызова функции ShowWindow. Параметр функции ShowWindow nCmdShow игнорируется. В последующих вызовах функции ShowWindow, член wShowWindow используется, если параметр функции ShowWindow nCmdShow установлен в SW_SHOWDEFAULT.

cbReserved2  

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

lpReserved2  

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

 

hStdInput  

Игнорируется, кроме тех случаев, когда dwFlags содержит флаг STARTF_USESTDHANDLES. Задаёт дескриптор, который будет использоваться как стандартный обработчик ввода процесса.

 

hStdOutput  

Игнорируется, кроме тех случаев, когда dwFlags содержит флаг STARTF_USESTDHANDLES. Задаёт дескриптор, который будет использоваться как стандартный обработчик вывода процесса.

 

hStdError Игнорируется, кроме тех случаев, когда dwFlags содержит флаг STARTF_USESTDHANDLES. Задаёт дескриптор, который будет использоваться как стандартный обработчик ошибок процесса.

 

Замечания  

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

 

См. также  

CreateProcess, CreateWindow, GetMessage, GetStartupInfo, PeekMessage, ShowWindow, WinMain

 

#bn { DISPLAY: block } #bt { DISPLAY: block }