Clase CCommandLineInfo
Ayuda a analizar la línea de comandos al iniciar la aplicación.
Sintaxis
class CCommandLineInfo : public CObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CCommandLineInfo::CCommandLineInfo |
Construye un objeto CCommandLineInfo predeterminado. |
Métodos públicos
Nombre | Descripción |
---|---|
CCommandLineInfo::ParseParam |
Invalide esta devolución de llamada para analizar parámetros individuales. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CCommandLineInfo::m_bRunAutomated |
Indica que se encontró la opción /Automation de la línea de comandos. |
CCommandLineInfo::m_bRunEmbedded |
Indica que se encontró la opción /Embedding de la línea de comandos. |
CCommandLineInfo::m_bShowSplash |
Indica si se debe mostrar una pantalla de presentación. |
CCommandLineInfo::m_nShellCommand |
Indica el comando de shell que se va a procesar. |
CCommandLineInfo::m_strDriverName |
Indica el nombre del controlador si el comando shell es Imprimir en; de lo contrario, está vacío. |
CCommandLineInfo::m_strFileName |
Indica el nombre de archivo que se va a abrir o imprimir; está vacío si el comando de shell es Nuevo o DDE. |
CCommandLineInfo::m_strPortName |
Indica el nombre del puerto si el comando shell es Imprimir en; de lo contrario, está vacío. |
CCommandLineInfo::m_strPrinterName |
Indica el nombre de la impresora si el comando shell es Imprimir en; de lo contrario, está vacío. |
CCommandLineInfo::m_strRestartIdentifier |
Indica el identificador de reinicio único del administrador de reinicio si el administrador de reinicio ha reiniciado la aplicación. |
Comentarios
Normalmente, una aplicación MFC creará una instancia local de esta clase en la función InitInstance
de su objeto de aplicación. A continuación, este objeto se pasa a CWinApp::ParseCommandLine
, que llama repetidamente a ParseParam
para rellenar el objeto CCommandLineInfo
. A continuación, el objeto CCommandLineInfo
se pasa a CWinApp::ProcessShellCommand
para controlar los argumentos y marcas de la línea de comandos.
Puede usar este objeto para encapsular las siguientes opciones y parámetros de la línea de comandos:
Argumento de línea de comandos | Comando ejecutado |
---|---|
app | Nuevo archivo. |
nombre de archivo de app | Abra el archivo . |
nombre de archivo de la aplicación /p |
Imprimir el archivo en la impresora predeterminada. |
puerto de controlador de impresora de nombre de archivo de aplicación /pt |
Imprimir el archivo en la impresora especificada. |
aplicación /dde |
Iniciar y esperar el comando DDE. |
aplicación /Automation |
Iniciar como servidor de automatización OLE. |
aplicación /Embedding |
Iniciar para editar un elemento OLE insertado. |
aplicación /Register aplicación /Regserver |
Informa a la aplicación para que realice cualquier tarea de registro. |
aplicación /Unregister aplicación /Unregserver |
Informa a la aplicación para que realice cualquier tarea de cancelación de registro. |
Derive una nueva clase de CCommandLineInfo
para controlar otras marcas y valores de parámetro. Invalide ParseParam
para controlar las nuevas marcas.
Jerarquía de herencia
CCommandLineInfo
Requisitos
Encabezado: afxwin.h
CCommandLineInfo::CCommandLineInfo
Este constructor crea un objeto CCommandLineInfo
con valores predeterminados.
CCommandLineInfo();
Comentarios
El valor predeterminado es mostrar la pantalla de presentación (m_bShowSplash=TRUE
) y ejecutar el comando Nuevo en el menú Archivo (m_nShellCommand
=NewFile
).
El marco de trabajo de la aplicación llama a ParseParam
para rellenar los miembros de datos de este objeto.
Ejemplo
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CCommandLineInfo::m_bRunAutomated
Indica que se encontró la marca /Automation
en la línea de comandos.
BOOL m_bRunAutomated;
Comentarios
Si es TRUE
, esto significa iniciarse como un servidor de automatización OLE.
CCommandLineInfo::m_bRunEmbedded
Indica que se encontró la marca /Embedding
en la línea de comandos.
BOOL m_bRunEmbedded;
Comentarios
Si es TRUE
, esto significa iniciar la edición de un elemento OLE insertado.
CCommandLineInfo::m_bShowSplash
Indica que se debe mostrar la pantalla de presentación.
BOOL m_bShowSplash;
Comentarios
Si es TRUE
, esto significa que la pantalla de presentación de esta aplicación debe mostrarse durante el inicio. La implementación predeterminada de ParseParam
establece este miembro de datos en TRUE
si m_nShellCommand
es igual a CCommandLineInfo::FileNew
.
CCommandLineInfo::m_nShellCommand
Indica el comando shell para esta instancia de la aplicación.
m_nShellCommand;
Comentarios
El tipo de este miembro de datos es el siguiente tipo enumerado, que se define dentro de la clase CCommandLineInfo
.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE,
AppRegister,
AppUnregister,
RestartByRestartManager,
FileNothing = -1
};
Para una breve descripción de estos valores de estado, consulte la lista siguiente:
CCommandLineInfo::FileNew
Indica que no se encontró ningún nombre de archivo en la línea de comandos.CCommandLineInfo::FileOpen
Indica que se encontró un nombre de archivo en la línea de comandos y que no se encontró ninguna de las marcas siguientes en la línea de comandos:/p
,/pt
,/dde
.CCommandLineInfo::FilePrint
Indica que se encontró la marca/p
en la línea de comandos.CCommandLineInfo::FilePrintTo
Indica que se encontró la marca/pt
en la línea de comandos.CCommandLineInfo::FileDDE
Indica que se encontró la marca/dde
en la línea de comandos.CCommandLineInfo::AppRegister
Indica que se encontró la marca/Register
o/Regserver
en la línea de comandos y se le pidió a la aplicación que se registrara.CCommandLineInfo::AppUnregister
Indica que se ha pedido a la aplicación/Unregister
o/Unregserver
que anule el registro.CCommandLineInfo::RestartByRestartManager
Indica que el administrador de reinicio ha reiniciado la aplicación.CCommandLineInfo::FileNothing
Desactiva la visualización de una nueva ventana secundaria MDI al iniciarse. Por diseño, las aplicaciones MDI generadas por el Asistente para aplicaciones muestran una nueva ventana secundaria en el inicio. Para desactivar esta característica, una aplicación puede usarCCommandLineInfo::FileNothing
como comando de shell cuando llama aProcessShellCommand
.ProcessShellCommand
es llamada porInitInstance( )
de todas las clases derivadasCWinApp
.
Ejemplo
// From CMyWinApp::InitInstance
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// DON'T display a new MDI child window during startup!!!
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
{
return FALSE;
}
CCommandLineInfo::m_strDriverName
Almacena el valor del tercer parámetro que no es de marca en la línea de comandos.
CString m_strDriverName;
Comentarios
Este parámetro suele ser el nombre del controlador de impresora para un comando shell Imprimir en. La implementación predeterminada de ParseParam
establece este miembro de datos solo si se encontró la marca /pt
en la línea de comandos.
CCommandLineInfo::m_strFileName
Almacena el valor del primer parámetro que no es de marca en la línea de comandos.
CString m_strFileName;
Comentarios
Este parámetro suele ser el nombre del archivo que se va a abrir.
CCommandLineInfo::m_strPortName
Almacena el valor del cuarto parámetro que no es de marca en la línea de comandos.
CString m_strPortName;
Comentarios
Este parámetro suele ser el nombre del puerto de impresora para un comando shell Imprimir en. La implementación predeterminada de ParseParam
establece este miembro de datos solo si se encontró la marca /pt
en la línea de comandos.
CCommandLineInfo::m_strPrinterName
Almacena el valor del segundo parámetro que no es de marca en la línea de comandos.
CString m_strPrinterName;
Comentarios
Este parámetro suele ser el nombre de la impresora para un comando shell Imprimir en. La implementación predeterminada de ParseParam
establece este miembro de datos solo si se encontró la marca /pt
en la línea de comandos.
CCommandLineInfo::m_strRestartIdentifier
Identificador de reinicio único en la línea de comandos.
CString m_strRestartIdentifier;
Comentarios
El identificador de reinicio es único para cada instancia de la aplicación.
Si el administrador de reinicio sale de la aplicación y está configurado para reiniciarla, el administrador de reinicio ejecuta la aplicación desde la línea de comandos con el identificador de reinicio como parámetro opcional. Cuando el administrador de reinicio usa el identificador de reinicio, la aplicación puede volver a abrir los documentos abiertos previamente y recuperar archivos guardados automáticamente.
CCommandLineInfo::ParseParam
El marco llama a esta función para analizar o interpretar parámetros individuales desde la línea de comandos. La segunda versión difiere de la primera en los proyectos Unicode.
virtual void ParseParam(
const char* pszParam,
BOOL bFlag,
BOOL bLast);
virtual void ParseParam(
const TCHAR* pszParam,
BOOL bFlag,
BOOL bLast);
Parámetros
pszParam
Parámetro o marca.
bFlag
Indica si pszParam
es un parámetro o una marca.
bLast
Indica si este es el último parámetro o marca en la línea de comandos.
Comentarios
CWinApp::ParseCommandLine
llama a ParseParam
una vez para cada parámetro o marca en la línea de comandos, pasando el argumento a pszParam
. Si el primer carácter del parámetro es -
o /
, se quita y bFlag
se establece en TRUE
. Al analizar el parámetro final, bLast
se establece en TRUE
.
La implementación predeterminada de esta función reconoce las marcas siguientes: /p
, /pt
, /dde
, /Automation
y /Embedding
, como se muestra en la tabla siguiente:
Argumento de línea de comandos | Comando ejecutado |
---|---|
app | Nuevo archivo. |
nombre de archivo de app | Abra el archivo . |
nombre de archivo de la aplicación /p |
Imprimir el archivo en la impresora predeterminada. |
puerto de controlador de impresora de nombre de archivo de aplicación /pt |
Imprimir el archivo en la impresora especificada. |
aplicación /dde |
Iniciar y esperar el comando DDE. |
aplicación /Automation |
Iniciar como servidor de automatización OLE. |
aplicación /Embedding |
Iniciar para editar un elemento OLE insertado. |
aplicación /Register aplicación /Regserver |
Informa a la aplicación para que realice cualquier tarea de registro. |
aplicación /Unregister aplicación /Unregserver |
Informa a la aplicación para que realice cualquier tarea de cancelación de registro. |
Esta información se almacena en m_bRunAutomated
, m_bRunEmbedded
y m_nShellCommand
. Las marcas se marcan mediante una barra diagonal /
o un guión -
.
La implementación predeterminada coloca el primer parámetro que no es de marca en m_strFileName
. En el caso de la marca /pt
, la implementación predeterminada coloca los parámetros segundo, tercero y cuarto que no son de marca en m_strPrinterName
, m_strDriverName
y m_strPortName
, respectivamente.
La implementación predeterminada también establece m_bShowSplash
en TRUE
solo en el caso de un archivo nuevo. En el caso de un nuevo archivo, el usuario ha realizado una acción que implica a la propia aplicación. En cualquier otro caso, incluida la apertura de archivos existentes mediante el shell, la acción del usuario implica al archivo directamente. En un punto de vista centrado en documentos, la pantalla de presentación no necesita anunciar el inicio de la aplicación.
Invalide esta función en la clase derivada para controlar otros valores de marca y parámetro.
Consulte también
CObject
(clase)
Gráfico de jerarquías
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand