STARTUPINFO

【勇芳软件工作室】汉化HomePreviousNext

STARTUPINFO结构与CreateProcess函数一起使用,以便为新进程创建新窗口时指定主窗口属性。对于图形用户界面(GUI)进程,此信息影响由CreateWindow函数创建并由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

保留。在将结构传递给CreateProcess之前将此成员设置为NULL。

lpDesktop

仅Windows NT:指向一个零终止的字符串,指定桌面的名称或此进程的窗口台和桌面的名称。lpDesktop指向的字符串中的反斜杠表示该字符串包括桌面和窗口站名称。否则,lpDesktop字符串将被解释为桌面名称。如果lpDesktop为NULL,则新进程将继承其父进程的窗口工作站和桌面。

lpTitle

对于控制台进程,如果创建了新的控制台窗口,则这是标题栏中显示的标题。如果为NULL,则将可执行文件的名称用作窗口标题。对于不创建新控制台窗口的GUI或控制台进程,此参数必须为NULL。

DWX,二

忽略dwFlags中指定STARTF_USEPOSITION。指定创建新窗口时窗口左上角的x和y偏移(以像素为单位)。偏移量来自屏幕的左上角。对于GUI进程,如果CreateWindow【x】参数为CW_USEDEFAULT,则新进程首次调用CreateWindow创建重叠窗口时,将使用指定的位置。

dwXSize,dwYSize

忽略dwFlags中指定STARTF_USESIZE。指定创建新窗口时窗口的宽度(dwXSize)和高度(dwYSize)(以像素为单位)。对于GUI进程,如果CreateWindow【nWidth】参数为CW_USEDEFAULT,则仅在新进程第一次调用CreateWindow创建重叠窗口时使用。

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和BACKGROUND_INTENSITY。例如,以下值的组合会在黑白背景上产生红色文本:

FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE

dwFlags中

这是一个位字段,用于确定在进程创建窗口时是否使用某些STARTUPINFO成员。可以指定以下值的任意组合:

含义
STARTF_USESHOWWINDOW如果未指定此值,则wShowWindow成员将被忽略。
STARTF_USEPOSITION如果未指定此值,则DWX成员将被忽略。
STARTF_USESIZE如果未指定此值,将忽略dwXSizedwYSize成员。
STARTF_USECOUNTCHARS如果未指定此值,则dwXCountCharsdwYCountChars成员将被忽略。
STARTF_USEFILLATTRIBUTE如果未指定此值,则dwFillAttribute成员将被忽略。
STARTF_FORCEONFEEDBACK如果指定了此值,则调用CreateProcess后,光标处于反馈模式两秒钟。如果在这两秒钟内,进程进行第一次GUI调用,系统再为该进程提供五秒钟。如果在这五秒钟的过程中显示一个窗口,系统会再次给出五秒钟的时间来完成窗口的绘制。
 第一次调用GetMessage后,系统会将反馈光标关闭,无论进程是否正在绘制。
 有关反馈的更多信息,请参阅以下备注部分。
STARTF_FORCEOFFFEEDBACK如果指定,反馈光标在进程开始时被强制关闭。显示普通光标。有关反馈的更多信息,请参阅以下备注部分。
STARTF_USESTDHANDLES如果指定了此值,则将进程的标准输入,标准输出和标准错误句柄设置为hStdOutput hStdOutputhStdError STARTUPINFO结构中的成员指定的句柄。必须将CreateProcess函数的【fInheritHandles】参数设置为TRUE才能正常工作。
 如果未指定此值,则将忽略STARTUPINFO结构的hStdInputhStdOutputhStdError成员。

wShowWindow

忽略dwFlags中指定STARTF_USESHOWWINDOW。wshowWindow成员可以是在WINUSER.H中定义的任何SW_常量。对于GUI进程,wShowWindow在第一次调用ShowWindow时指定默认值。ShowWindow【nCmdShow】参数将被忽略。在随后的ShowWindow电话中,如果ShowWindow【nCmdShow】参数设置为SW_SHOWDEFAULT,则使用wShowWindow成员。

cbReserved2

Reserved; must be zero.

lpReserved2

Reserved; must be NULL.

hStdInput

忽略dwFlags中指定STARTF_USESTDHANDLES。指定如果指定了STARTF_USESTDHANDLES,该句柄将用作该进程的标准输入句柄。

hStdOutput

忽略dwFlags中指定STARTF_USESTDHANDLES。指定如果指定了STARTF_USESTDHANDLES,将用作该进程的标准输出句柄的句柄。

hStdError

忽略dwFlags中指定STARTF_USESTDHANDLES。指定如果指定了STARTF_USESTDHANDLES,将用作该进程的标准错误句柄的句柄。

备注

如果GUI进程正在启动,并且没有指定STARTF_FORCEONFEEDBACK或STARTF_FORCEOFFFEEDBACK,则使用进程反馈光标。GUI进程是一个子系统被指定为“windows”的进程。

也可以看看

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