Estructura STARTUPINFO
Definición
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;
Esta estructura se usa junto con la función CreateProcess para definir las propiedades de la ventana principal si se crea una nueva ventana para un proceso nuevo. Para procesos con interfaz gráfico de usuario (GUI), ésta información afecta a la primera ventana creada con la función CreateWindow. Para procesos de consola, ésta información afecta a la ventana de consola si el proceso crea una nueva ventana de consola. Un proceso puede usar la función GetStartupInfo para recuperar la estructura STARTUPINFO especificada cuando un proceso fue creado.
Descripción
cb: especifica el tamaño en bytes de la estructura.
lpReserved: reservado. Poner este miembro a NULL antes de pasar la estructura a CreateProcess.
lpDesktop:
Windows 95: ignora este miembro.
Windows NT: apunta a una cadena (terminada con cero) que especifica
o bien el nombre del escritorio sólo o bien ambos: el nombre de la estación
de ventanas y del escritorio para este proceso. Una barra inversa en
la cadena indica que ésta incluye ambos nombres: escritorio y estación
de ventanas. En otro caso, lpDesktop se interpreta como el nombre de escritorio.
Si lpDesktop es NULL, el nuevo proceso heredará la ventana-estación
y el escritorio del proceso padre.
lpTitle: para procesos de consola, éste es el título mostrado en la barra de título si se crea una nueva ventana de consola. Si es NULL, se usará en su lugar el nombre del fichero ejecutable. Este parámetro debe ser NULL para GUI o procesos de consola que no creen nuevas ventanas de consola.
dwX, dwY: se ignoran a no ser que dwFlags especifique STARTF_USEPOSITION. Indican un desplazamiento x e y, en pixels, de la esquina superior izquierda de una ventana si se crea una nueva ventana. Los desplazamientos son referentes a la esquina superior izquierda de la pantalla. Para procesos GUI, la posición especificada se usa la primera vez que el nuevo proceso llama a CreateWindow para crear una ventana superpuesta si el parámetro x de CreateWindow es CW_USEDEFAULT.
dwXSize, dwYSize: se ignoran a no ser que dwFlags especifique STARTF_USESIZE. Indican el ancho (dwXSize) y el alto (dwYSize), en pixels, de la ventana si se crea una ventana nueva. Para procesos GUI, son usados sólo la primera vez que el nuevo procesos llama a CreateWindow para crear una ventana superpuesta si el parámetro nWidth de CreateWindow es CW_USEDEFAULT.
dwXCountChars, dwYCountChars: se ignoran a no ser que dwFlags especifique STARTF_USECOUNTCHARS. Para procesos de consola, si se crea una nueva ventana de consola, dwXCountChars indica el ancho del buffer de pantalla en columnas de caracteres, y dwYCountChars indica la altura del buffer de pantalla en líneas de caracteres. Estos valores se ignoran el procesos GUI.
dwFillAttribute: se ignora a no ser que dwFlags especifique STARTF_USEFILLATTRIBUTE. Para procesos de consola, indica los colores iniciales de texto y fondo si se crea una nueva ventana de consola. Estos valores se ignoran en procesos GUI.
dwFlags: se trata de un campo de bits que determina si determinados miembros de la estructura STARTUPINFO serán usados cuando el proceso cree una ventana. Puede usarse cualquier combinación de los siguientes valores:
Valor | Significado |
---|---|
STARTF_USESHOWWINDOW | Si no es especifica este valor, el miembro wShowWindow será ignorado. |
STARTF_USEPOSITION | Si no se especifica este valor, los miembros dwX y dwY serán ignorados. |
STARTF_USESIZE | Si no se especifica este valor, los miembros dwXSize y dwYSize serán ignorados. |
STARTF_USECOUNTCHARS | Si no se especifica este valor, los miembros dwXCountChars y dwYCountChars serán ignorados. |
STARTF_USEFILLATTRIBUTE | Si no se especifica este valor, el miembro dwFillAttribute será ignorado. |
STARTF_FORCEONFEEDBACK |
Si se especifica este valor, el cursor permanecerá dos segundos en modo "feedback" después de que se llame a CreateProcess. Si durante esos dos segundos el proceso hace la primera llamada GUI, el sistema proporciona cinco segundos más al proceso. Si durante esos cinco segundos el proceso muestra una ventana, el sistema proporciona cinco segundos más al proceso para que termine de dibujar la ventana. El sistema apaga el cursor "feedback" después de la primera llamada a GetMessage, sin preocuparse de si el proceso está dibujando. Para más información sobre "feedback", ver la sección de observaciones del final. *feedback: retroalimentación. |
STARTF_FORCEOFFFEEDBACK | Si se especifica, se eliminará el cursor "feedback" durante el arranque del proceso. Se mostrará el cursor normal. Para más información sobre "feedback", ver la sección de observaciones del final. |
STARTF_SCREENSAVER |
Si se especifica, el sistema tratará la aplicación como un salva pantallas:
Crear un salva pantallas con NORMAL_PRIORITY_CLASS le permite iniciarse y terminar por encima de aplicaciones con prioridad normal. |
STARTF_USESTDHANDLES |
Si se especifica este valor, se usan los manipuladores de entrada estándar, de salida y de error del proceso a los especificados en los miembros hStdInput, hStdOutput y hStdError de la estructura STARTUPINFO. El parámetro fInheritHandles de la función CreateProcess debe ser puesto a TRUE para que funcione correctamente. Si no se especifica, se ignoraran los miembros hStdInput, hStdOutput y hStdError de la estructura STARTUPINFO. |
wShowWindow: se ignora a no ser que dwFlags especifique STARTF_USESHOWWINDOW. Para procesos GUI, wShowWindow indica el valor por defecto la primera vez que se llama a ShowWindow, si el parámetro nCmdShow de la función ShowWindow es SW_SHOWDEFAULT. El miembro wshowWindow puede tener como valor cualquier constante SW_ definida en WINUSER.H. En versiones anteriores de Windows, la función WinMain tenía un parámetro nCmdShow que se recomendaba que la aplicación pasara a las funciones CreateWindow o ShowWindow. El parámetro nCmdShow ya no está disponible a través de WinMain. Ahora, las aplicaciones deben usar SW_SHOWDEFAULT como el comando de por defecto en ShowWindow, en este caso, ShowWindow usará el miembro wShowWindow de la estructura STARTUPINFO del proceso.
cbReserved2: reservado; debe ser cero.
lpReserved2: reservado; debe ser NULL.
hStdInput: se ignora a no ser que dwFlags especifique STARTF_USESTDHANDLES. Indica un manipulador que se usará como manipulador de entrada estándar del proceso si se especifica STARTF_USESTDHANDLES.
hStdOutput: se ignora a no ser que dwFlags especifique STARTF_USESTDHANDLES. Indica un manipulador que se usará como manipulador de salida estándar del proceso si se especifica STARTF_USESTDHANDLES.
hStdError: se ignora a no ser que dwFlags especifique STARTF_USESTDHANDLES. Indica un manipulador que se usará como manipulador de error estándar del proceso si se especifica STARTF_USESTDHANDLES.
Observaciones:
Si un proceso GUI está comenzado y ni STARTF_FORCEONFEEDBACK ni STARTF_FORCEOFFFEEDBACK fueron especificados, se usará el proceso de cursor "feedback". Un proceso GUI es uno cuyo subsistema es especificado como "windows."