Classe CCommandLineInfo
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 CCommandLineInfo padrão. |
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 de comando /Automation foi encontrada. |
CCommandLineInfo::m_bRunEmbedded |
Indica que a opção de linha de comando /Embedding 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 Print To; caso contrário, será vazio. |
CCommandLineInfo::m_strFileName |
Indica o nome do arquivo a ser aberto ou impresso; será vazio se o comando shell for New ou DDE. |
CCommandLineInfo::m_strPortName |
Indica o nome da porta se o comando shell for Print To; caso contrário, será vazio. |
CCommandLineInfo::m_strPrinterName |
Indica o nome da impressora se o comando shell for Print To; caso contrário, será vazio. |
CCommandLineInfo::m_strRestartIdentifier |
Indica o identificador de reinicialização exclusivo para o gerenciador de reinicialização se esse gerenciador reiniciou o aplicativo. |
Comentários
Um aplicativo MFC normalmente criará uma instância local dessa classe na função InitInstance
de seu objeto de aplicativo. Em seguida, esse objeto é passado para CWinApp::ParseCommandLine
, que chama ParseParam
repetidamente para preencher o objeto CCommandLineInfo
. Então, o objeto CCommandLineInfo
é passado para CWinApp::ProcessShellCommand
manipular os argumentos e sinalizadores de linha de comando.
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 |
---|---|
app | Novo arquivo. |
app filename | Abra o arquivo . |
nome do arquivo do aplicativo /p |
Imprimir arquivo na impressora padrão. |
nome do arquivo do aplicativo /pt porta do driver da impressora |
Imprimir arquivo na impressora especificada. |
aplicação /dde |
Inicie e aguarde o comando DDE. |
aplicação /Automation |
Inicie como um servidor de automação OLE. |
aplicação /Embedding |
Comece a editar um item OLE inserido. |
aplicação /Register aplicação /Regserver |
Informa o aplicativo para realizar quaisquer tarefas de registro. |
aplicação /Unregister aplicação /Unregserver |
Informa o aplicativo para realizar quaisquer tarefas de cancelamento de registro. |
Derive uma nova classe de CCommandLineInfo
para manipular outros sinalizadores e valores de parâmetro. Substitua ParseParam
para manipular os novos sinalizadores.
Hierarquia de herança
CCommandLineInfo
Requisitos
Cabeçalho: afxwin.h
CCommandLineInfo::CCommandLineInfo
Esse construtor cria um objeto CCommandLineInfo
com valores padrão.
CCommandLineInfo();
Comentários
O padrão é mostrar a tela inicial ( m_bShowSplash=TRUE
) e executar o comando New 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 sinalizador /Automation
foi encontrado na linha de comando.
BOOL m_bRunAutomated;
Comentários
Se for TRUE
, isso significa iniciar como um servidor de automação OLE.
CCommandLineInfo::m_bRunEmbedded
Indica que o sinalizador /Embedding
foi encontrado na linha de comando.
BOOL m_bRunEmbedded;
Comentários
Se for TRUE
, isso significa iniciar para editar um item OLE inserido.
CCommandLineInfo::m_bShowSplash
Indica que a tela inicial deve ser exibida.
BOOL m_bShowSplash;
Comentários
Se for TRUE
, isso significa que a tela inicial desse aplicativo deve ser exibida durante a inicialização. A implementação padrão de ParseParam
define esse membro de dados como TRUE
se m_nShellCommand
for igual a CCommandLineInfo::FileNew
.
CCommandLineInfo::m_nShellCommand
Indica o comando shell para esta instância do aplicativo.
m_nShellCommand;
Comentários
O tipo desse membro de dados é o seguinte tipo enumerado, que é definido na classe CCommandLineInfo
.
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
e/dde
.CCommandLineInfo::FilePrint
Indica que o sinalizador/p
foi encontrado na linha de comando.CCommandLineInfo::FilePrintTo
Indica que o sinalizador/pt
foi encontrado na linha de comando.CCommandLineInfo::FileDDE
Indica que o sinalizador/dde
foi encontrado na linha de comando.CCommandLineInfo::AppRegister
Indica que o sinalizador/Register
ou/Regserver
foi encontrado na linha de comando e o aplicativo foi solicitado a se registrar.CCommandLineInfo::AppUnregister
Indica que o aplicativo/Unregister
ou/Unregserver
foi solicitado a cancelar o 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 do 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 usarCCommandLineInfo::FileNothing
como o comando shell quando ele chamarProcessShellCommand
.ProcessShellCommand
é chamado porInitInstance( )
de todas as classes derivadasCWinApp
.
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;
Comentários
Normalmente, esse parâmetro é o nome do driver da impressora para um comando shell Print To. A implementação padrão de ParseParam
define esse membro de dados somente se o sinalizador /pt
foi encontrado na linha de comando.
CCommandLineInfo::m_strFileName
Armazena o valor do primeiro parâmetro não sinalizador na linha de comando.
CString m_strFileName;
Comentários
Normalmente, esse parâmetro é o nome do arquivo a ser aberto.
CCommandLineInfo::m_strPortName
Armazena o valor do quarto parâmetro não sinalizador na linha de comando.
CString m_strPortName;
Comentários
Esse parâmetro normalmente é o nome da porta da impressora para um comando shell Print To. A implementação padrão de ParseParam
define esse membro de dados somente se o sinalizador /pt
foi encontrado na linha de comando.
CCommandLineInfo::m_strPrinterName
Armazena o valor do segundo parâmetro não sinalizador na linha de comando.
CString m_strPrinterName;
Comentários
Esse parâmetro normalmente é o nome da impressora para um comando shell Print To. A implementação padrão de ParseParam
define esse membro de dados somente se o sinalizador /pt
foi encontrado na linha de comando.
CCommandLineInfo::m_strRestartIdentifier
O identificador de reinicialização exclusivo na linha de comando.
CString m_strRestartIdentifier;
Comentários
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 na 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 da linha de comando. A segunda versão é diferente da primeira somente 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 esse é o último parâmetro ou sinalizador na linha de comando.
Comentários
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 um -
ou um /
, ele será removido e bFlag
será definido como TRUE
. Ao analisar o parâmetro final, bLast
será definido como TRUE
.
A implementação padrão dessa função reconhece os seguintes sinalizadores: /p
, /pt
, /dde
,/Automation
e /Embedding
, conforme mostrado na tabela a seguir:
Argumento de linha de comando | Comando executado |
---|---|
app | Novo arquivo. |
app filename | Abra o arquivo . |
nome do arquivo do aplicativo /p |
Imprimir arquivo na impressora padrão. |
nome do arquivo do aplicativo /pt porta do driver da impressora |
Imprimir arquivo na impressora especificada. |
aplicação /dde |
Inicie e aguarde o comando DDE. |
aplicação /Automation |
Inicie como um servidor de automação OLE. |
aplicação /Embedding |
Comece a editar um item OLE inserido. |
aplicação /Register aplicação /Regserver |
Informa o aplicativo para realizar quaisquer tarefas de registro. |
aplicação /Unregister aplicação /Unregserver |
Informa o aplicativo para realizar quaisquer tarefas de cancelamento de registro. |
Essas informações são armazenadas em m_bRunAutomated
, m_bRunEmbedded
e m_nShellCommand
. Os sinalizadores são marcados por uma barra /
ou hífen -
.
A implementação padrão coloca o primeiro parâmetro não sinalizador em m_strFileName
. No caso do sinalizador /pt
, a implementação padrão coloca o segundo, o terceiro e o quarto parâmetros não sinalizadores em m_strPrinterName
, m_strDriverName
e 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 documento, 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.
Confira também
Classe CObject
Gráfico da hierarquia
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand