Partilhar via


CCommandLineInfo Classe

Ajuda na análise da linha de comando na inicialização do aplicativo.

Sintaxe

class CCommandLineInfo : public CObject

Membros

Construtores Públicos

Nome Descrição
CCommandLineInfo::CCommandLineInfo Constrói um objeto padrão CCommandLineInfo .

Métodos Públicos

Nome Descrição
CCommandLineInfo::ParseParam Substitua esse retorno de chamada para analisar parâmetros individuais.

Membros de Dados Públicos

Nome Descrição
CCommandLineInfo::m_bRunAutomated Indica que a opção de linha /Automation de comando foi encontrada.
CCommandLineInfo::m_bRunEmbedded Indica que a opção de linha /Embedding de comando foi encontrada.
CCommandLineInfo::m_bShowSplash Indica se uma tela inicial deve ser mostrada.
CCommandLineInfo::m_nShellCommand Indica o comando shell a ser processado.
CCommandLineInfo::m_strDriverName Indica o nome do driver se o comando shell for Imprimir em; caso contrário, vazio.
CCommandLineInfo::m_strFileName Indica o nome do arquivo a ser aberto ou impresso; vazio se o comando shell for Novo ou DDE.
CCommandLineInfo::m_strPortName Indica o nome da porta se o comando shell for Imprimir em; caso contrário, vazio.
CCommandLineInfo::m_strPrinterName Indica o nome da impressora se o comando shell for Imprimir em; caso contrário, vazio.
CCommandLineInfo::m_strRestartIdentifier Indica o identificador de reinicialização exclusivo para o gerenciador de reinicialização se o gerenciador de reinicialização reiniciou o aplicativo.

Observações

Um aplicativo MFC normalmente criará uma instância local dessa classe na InitInstance função de seu objeto de aplicativo. Este objeto é então passado para CWinApp::ParseCommandLine, que repetidamente chama ParseParam para preencher o CCommandLineInfo objeto. O CCommandLineInfo objeto é então passado para CWinApp::ProcessShellCommand para manipular os argumentos de linha de comando e sinalizadores.

Você pode usar esse objeto para encapsular as seguintes opções e parâmetros de linha de comando:

Argumento de linha de comando Comando executado
aplicativo Novo ficheiro.
nome do ficheiro da aplicação Abra o arquivo.
aplicativo/p nome do ficheiro Imprima o arquivo na impressora padrão.
aplicativo/pt porta do driver de impressora do nome do arquivo Imprima o arquivo na impressora especificada.
aplicativo/dde Inicie e aguarde o comando DDE.
aplicativo/Automation Inicie como um servidor de automação OLE.
aplicativo/Embedding Inicie para editar um item OLE incorporado.
aplicativo/Register

aplicativo/Regserver
Informa o aplicativo para executar quaisquer tarefas de registro.
aplicativo/Unregister

aplicativo/Unregserver
Informa o aplicativo para executar quaisquer tarefas de cancelamento de registro.

Derive uma nova classe de para manipular outros sinalizadores e valores de CCommandLineInfo parâmetro. Substituir ParseParam para lidar com os novos sinalizadores.

Hierarquia de herança

CObject

CCommandLineInfo

Requerimentos

Cabeçalho:afxwin.h

CCommandLineInfo::CCommandLineInfo

Este construtor cria um CCommandLineInfo objeto com valores padrão.

CCommandLineInfo();

Observações

O padrão é mostrar a tela inicial (m_bShowSplash=TRUE) e executar o comando Novo no menu Arquivo (m_nShellCommand=NewFile).

A estrutura do aplicativo chama ParseParam para preencher membros de dados desse objeto.

Exemplo

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Indica que o /Automation sinalizador foi encontrado na linha de comando.

BOOL m_bRunAutomated;

Observações

Se TRUE, isso significa iniciar como um servidor de automação OLE.

CCommandLineInfo::m_bRunEmbedded

Indica que o /Embedding sinalizador foi encontrado na linha de comando.

BOOL m_bRunEmbedded;

Observações

Se TRUE, isso significa iniciar para editar um item OLE incorporado.

CCommandLineInfo::m_bShowSplash

Indica que a tela inicial deve ser exibida.

BOOL m_bShowSplash;

Observações

Se TRUE, isso significa que a tela inicial para este aplicativo deve ser exibida durante a inicialização. A implementação padrão de define este membro de ParseParam dados como TRUE if m_nShellCommand é igual a CCommandLineInfo::FileNew.

CCommandLineInfo::m_nShellCommand

Indica o comando shell para esta instância do aplicativo.

m_nShellCommand;

Observações

O tipo para esse membro de dados é o seguinte tipo enumerado, que é definido na CCommandLineInfo classe.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE,
    AppRegister,
    AppUnregister,
    RestartByRestartManager,
    FileNothing = -1
    };

Para obter uma breve descrição desses valores, consulte a lista a seguir.

  • CCommandLineInfo::FileNew Indica que nenhum nome de arquivo foi encontrado na linha de comando.

  • CCommandLineInfo::FileOpen Indica que um nome de arquivo foi encontrado na linha de comando e que nenhum dos seguintes sinalizadores foi encontrado na linha de comando: /p, /pt, /dde.

  • CCommandLineInfo::FilePrint Indica que o /p sinalizador foi encontrado na linha de comando.

  • CCommandLineInfo::FilePrintTo Indica que o /pt sinalizador foi encontrado na linha de comando.

  • CCommandLineInfo::FileDDE Indica que o /dde sinalizador foi encontrado na linha de comando.

  • CCommandLineInfo::AppRegister Indica que o /Register sinalizador ou /Regserver foi encontrado na linha de comando e o aplicativo foi solicitado a se registrar.

  • CCommandLineInfo::AppUnregisterIndica que o aplicativo ou /Unregister foi solicitado a cancelar o /Unregserver registro.

  • CCommandLineInfo::RestartByRestartManager Indica que o aplicativo foi reiniciado pelo gerenciador de reinicialização.

  • CCommandLineInfo::FileNothing Desativa a exibição de uma nova janela filho MDI na inicialização. Por design, os aplicativos MDI gerados pelo Assistente de Aplicativo exibem uma nova janela filho na inicialização. Para desativar esse recurso, um aplicativo pode usar CCommandLineInfo::FileNothing como o comando shell quando chama ProcessShellCommand. ProcessShellCommand é chamado pelo InitInstance( ) de todas as CWinApp classes derivadas.

Exemplo

// 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

Armazena o valor do terceiro parâmetro não-sinalizador na linha de comando.

CString m_strDriverName;

Observações

Este parâmetro é normalmente o nome do driver de impressora para um comando shell Print To. A implementação padrão de define esse membro de dados somente se o sinalizador ParseParam foi encontrado na linha de /pt comando.

CCommandLineInfo::m_strFileName

Armazena o valor do primeiro parâmetro não-flag na linha de comando.

CString m_strFileName;

Observações

Este parâmetro é normalmente o nome do ficheiro a abrir.

CCommandLineInfo::m_strPortName

Armazena o valor do quarto parâmetro non-flag na linha de comando.

CString m_strPortName;

Observações

Este parâmetro é normalmente o nome da porta da impressora para um comando shell Print To. A implementação padrão de define esse membro de dados somente se o sinalizador ParseParam foi encontrado na linha de /pt comando.

CCommandLineInfo::m_strPrinterName

Armazena o valor do segundo parâmetro non-flag na linha de comando.

CString m_strPrinterName;

Observações

Este parâmetro é normalmente o nome da impressora para um comando shell Imprimir em. A implementação padrão de define esse membro de dados somente se o sinalizador ParseParam foi encontrado na linha de /pt comando.

CCommandLineInfo::m_strRestartIdentifier

O identificador de reinicialização exclusivo na linha de comando.

CString m_strRestartIdentifier;

Observações

O identificador de reinicialização é exclusivo para cada instância do aplicativo.

Se o gerenciador de reinicialização sair do aplicativo e estiver configurado para reiniciá-lo, o gerenciador de reinicialização executará o aplicativo a partir da linha de comando com o identificador de reinicialização como um parâmetro opcional. Quando o gerenciador de reinicialização usa o identificador de reinicialização, o aplicativo pode reabrir os documentos abertos anteriormente e recuperar arquivos salvos automaticamente.

CCommandLineInfo::ParseParam

A estrutura chama essa função para analisar/interpretar parâmetros individuais a partir da linha de comando. A segunda versão difere da primeira apenas em projetos Unicode.

virtual void ParseParam(
    const char* pszParam,
    BOOL bFlag,
    BOOL bLast);

virtual void ParseParam(
    const TCHAR* pszParam,
    BOOL bFlag,
    BOOL bLast);

Parâmetros

pszParam
O parâmetro ou sinalizador.

bFlag
Indica se pszParam é um parâmetro ou um sinalizador.

bLast
Indica se este é o último parâmetro ou sinalizador na linha de comando.

Observações

CWinApp::ParseCommandLine chama ParseParam uma vez para cada parâmetro ou sinalizador na linha de comando, passando o argumento para pszParam. Se o primeiro caractere do parâmetro for a - ou a /, ele será removido e bFlag definido como TRUE. Ao analisar o parâmetro final, bLast é definido como TRUE.

A implementação padrão dessa função reconhece os seguintes sinalizadores: /p, /pt, /dde, /Automatione , conforme /Embeddingmostrado na tabela a seguir:

Argumento de linha de comando Comando executado
aplicativo Novo ficheiro.
nome do ficheiro da aplicação Abra o arquivo.
aplicativo/p nome do ficheiro Imprima o arquivo na impressora padrão.
aplicativo/pt porta do driver de impressora do nome do arquivo Imprima o arquivo na impressora especificada.
aplicativo/dde Inicie e aguarde o comando DDE.
aplicativo/Automation Inicie como um servidor de automação OLE.
aplicativo/Embedding Inicie para editar um item OLE incorporado.
aplicativo/Register

aplicativo/Regserver
Informa o aplicativo para executar quaisquer tarefas de registro.
aplicativo/Unregister

aplicativo/Unregserver
Informa o aplicativo para executar quaisquer tarefas de cancelamento de registro.

Essas informações são armazenadas em m_bRunAutomated, m_bRunEmbeddede m_nShellCommand. As bandeiras são marcadas por uma barra / ou hífen -.

A implementação padrão coloca o primeiro parâmetro não-flag em m_strFileName. No caso do /pt sinalizador, a implementação padrão coloca o segundo, terceiro e quarto parâmetros não-sinalizadores em m_strPrinterName, m_strDriverNamee m_strPortName, respectivamente.

A implementação padrão também define m_bShowSplash como TRUE somente no caso de um novo arquivo. No caso de um novo arquivo, o usuário tomou medidas envolvendo o próprio aplicativo. Em qualquer outro caso, incluindo a abertura de arquivos existentes usando o shell, a ação do usuário envolve o arquivo diretamente. Em um ponto de vista centrado em documentos, a tela inicial não precisa anunciar a inicialização do aplicativo.

Substitua essa função em sua classe derivada para manipular outros valores de sinalizador e parâmetro.

Ver também

CObject Classe
Gráfico de Hierarquia
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand