Compartir a través de


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

CObject

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::FilePrintIndica que se encontró la marca /p en la línea de comandos.

  • CCommandLineInfo::FilePrintToIndica que se encontró la marca /pt en la línea de comandos.

  • CCommandLineInfo::FileDDEIndica 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 usar CCommandLineInfo::FileNothing como comando de shell cuando llama a ProcessShellCommand. ProcessShellCommand es llamada por InitInstance( ) de todas las clases derivadas CWinApp.

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