Classe CCommandLineInfo
Facilita l'analisi della riga di comando all'avvio dell'applicazione.
Sintassi
class CCommandLineInfo : public CObject
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CCommandLineInfo::CCommandLineInfo |
Costruisce un oggetto predefinito CCommandLineInfo . |
Metodi pubblici
Nome | Descrizione |
---|---|
CCommandLineInfo::ParseParam |
Eseguire l'override di questo callback per analizzare i singoli parametri. |
Membri dati pubblici
Nome | Descrizione |
---|---|
CCommandLineInfo::m_bRunAutomated |
Indica che è stata trovata l'opzione della riga /Automation di comando. |
CCommandLineInfo::m_bRunEmbedded |
Indica che è stata trovata l'opzione della riga /Embedding di comando. |
CCommandLineInfo::m_bShowSplash |
Indica se deve essere visualizzata una schermata iniziale. |
CCommandLineInfo::m_nShellCommand |
Indica il comando della shell da elaborare. |
CCommandLineInfo::m_strDriverName |
Indica il nome del driver se il comando della shell è Print To; in caso contrario vuoto. |
CCommandLineInfo::m_strFileName |
Indica il nome del file da aprire o stampare; vuoto se il comando della shell è Nuovo o DDE. |
CCommandLineInfo::m_strPortName |
Indica il nome della porta se il comando della shell è Print To; in caso contrario vuoto. |
CCommandLineInfo::m_strPrinterName |
Indica il nome della stampante se il comando della shell è Print To; in caso contrario vuoto. |
CCommandLineInfo::m_strRestartIdentifier |
Indica l'identificatore di riavvio univoco per il gestore di riavvio se il gestore di riavvio ha riavviato l'applicazione. |
Osservazioni:
Un'applicazione MFC in genere creerà un'istanza locale di questa classe nella InitInstance
funzione del relativo oggetto applicazione. Questo oggetto viene quindi passato a CWinApp::ParseCommandLine
, che chiama ParseParam
ripetutamente per riempire l'oggetto CCommandLineInfo
. L'oggetto CCommandLineInfo
viene quindi passato a CWinApp::ProcessShellCommand
per gestire gli argomenti e i flag della riga di comando.
È possibile usare questo oggetto per incapsulare le opzioni e i parametri della riga di comando seguenti:
Argomento della riga di comando | Comando eseguito |
---|---|
app | Nuovo file. |
nome file dell'app | Aprire il file. |
nome file dell'app /p |
Stampare il file nella stampante predefinita. |
porta del driver della stampante nome file dell'app /pt |
Stampa il file nella stampante specificata. |
app /dde |
Avviare e attendere il comando DDE. |
app /Automation |
Avviare come server di automazione OLE. |
app /Embedding |
Avviare per modificare un elemento OLE incorporato. |
app /Register app /Regserver |
Informa l'applicazione di eseguire qualsiasi attività di registrazione. |
app /Unregister app /Unregserver |
Informa l'applicazione di eseguire qualsiasi attività di annullamento della registrazione. |
Derivare una nuova classe da CCommandLineInfo
per gestire altri flag e valori di parametro. Eseguire l'override ParseParam
per gestire i nuovi flag.
Gerarchia di ereditarietà
CCommandLineInfo
Requisiti
Intestazione: afxwin.h
CCommandLineInfo::CCommandLineInfo
Questo costruttore crea un CCommandLineInfo
oggetto con valori predefiniti.
CCommandLineInfo();
Osservazioni:
L'impostazione predefinita consiste nel visualizzare la schermata iniziale ( m_bShowSplash=TRUE
) e per eseguire il comando Nuovo nel menu File ( m_nShellCommand
=NewFile
).
Il framework dell'applicazione chiama ParseParam
per riempire i membri dati di questo oggetto.
Esempio
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CCommandLineInfo::m_bRunAutomated
Indica che il /Automation
flag è stato trovato nella riga di comando.
BOOL m_bRunAutomated;
Osservazioni:
Se TRUE
, significa avviarsi come server di automazione OLE.
CCommandLineInfo::m_bRunEmbedded
Indica che il /Embedding
flag è stato trovato nella riga di comando.
BOOL m_bRunEmbedded;
Osservazioni:
Se TRUE
, significa iniziare a modificare un elemento OLE incorporato.
CCommandLineInfo::m_bShowSplash
Indica che la schermata iniziale deve essere visualizzata.
BOOL m_bShowSplash;
Osservazioni:
Se TRUE
, significa che la schermata iniziale per questa applicazione deve essere visualizzata durante l'avvio. L'implementazione predefinita di ParseParam
imposta questo membro dati su TRUE
se m_nShellCommand
è uguale a CCommandLineInfo::FileNew
.
CCommandLineInfo::m_nShellCommand
Indica il comando shell per questa istanza dell'applicazione.
m_nShellCommand;
Osservazioni:
Il tipo per questo membro dati è il tipo enumerato seguente, definito nella CCommandLineInfo
classe .
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE,
AppRegister,
AppUnregister,
RestartByRestartManager,
FileNothing = -1
};
Per una breve descrizione di questi valori, vedere l'elenco seguente.
CCommandLineInfo::FileNew
Indica che nella riga di comando non è stato trovato alcun nome file.CCommandLineInfo::FileOpen
Indica che nella riga di comando è stato trovato un nome file e che nessuno dei flag seguenti è stato trovato nella riga di comando:/p
,/pt
,/dde
.CCommandLineInfo::FilePrint
Indica che il/p
flag è stato trovato nella riga di comando.CCommandLineInfo::FilePrintTo
Indica che il/pt
flag è stato trovato nella riga di comando.CCommandLineInfo::FileDDE
Indica che il/dde
flag è stato trovato nella riga di comando.CCommandLineInfo::AppRegister
Indica che il/Register
flag o/Regserver
è stato trovato nella riga di comando e all'applicazione è stato richiesto di eseguire la registrazione.CCommandLineInfo::AppUnregister
Indica che all'applicazione o/Unregserver
è stato richiesto di annullare la/Unregister
registrazione.CCommandLineInfo::RestartByRestartManager
Indica che l'applicazione è stata riavviata dal gestore di riavvio.CCommandLineInfo::FileNothing
Disattiva la visualizzazione di una nuova finestra figlio MDI all'avvio. Per impostazione predefinita, le applicazioni MDI generate dalla Creazione guidata applicazione visualizzano una nuova finestra figlio all'avvio. Per disattivare questa funzionalità, un'applicazione può usareCCommandLineInfo::FileNothing
come comando della shell quando chiamaProcessShellCommand
.ProcessShellCommand
viene chiamato daInitInstance( )
di tutte leCWinApp
classi derivate.
Esempio
// 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
Archivia il valore del terzo parametro non flag nella riga di comando.
CString m_strDriverName;
Osservazioni:
Questo parametro è in genere il nome del driver della stampante per un comando della shell Print To. L'implementazione predefinita di imposta questo membro dati solo se il /pt
flag è stato trovato nella riga di ParseParam
comando.
CCommandLineInfo::m_strFileName
Archivia il valore del primo parametro non flag nella riga di comando.
CString m_strFileName;
Osservazioni:
Questo parametro è in genere il nome del file da aprire.
CCommandLineInfo::m_strPortName
Archivia il valore del quarto parametro non flag nella riga di comando.
CString m_strPortName;
Osservazioni:
Questo parametro è in genere il nome della porta della stampante per un comando print to shell. L'implementazione predefinita di imposta questo membro dati solo se il /pt
flag è stato trovato nella riga di ParseParam
comando.
CCommandLineInfo::m_strPrinterName
Archivia il valore del secondo parametro non flag nella riga di comando.
CString m_strPrinterName;
Osservazioni:
Questo parametro è in genere il nome della stampante per un comando print to shell. L'implementazione predefinita di imposta questo membro dati solo se il /pt
flag è stato trovato nella riga di ParseParam
comando.
CCommandLineInfo::m_strRestartIdentifier
Identificatore di riavvio univoco nella riga di comando.
CString m_strRestartIdentifier;
Osservazioni:
L'identificatore di riavvio è univoco per ogni istanza dell'applicazione.
Se il gestore di riavvio esce dall'applicazione ed è configurato per riavviarlo, il gestore di riavvio esegue l'applicazione dalla riga di comando con l'identificatore di riavvio come parametro facoltativo. Quando il gestore di riavvio usa l'identificatore di riavvio, l'applicazione può riaprire i documenti aperti in precedenza e ripristinare i file salvati automaticamente.
CCommandLineInfo::ParseParam
Il framework chiama questa funzione per analizzare/interpretare i singoli parametri dalla riga di comando. La seconda versione è diversa dalla prima solo nei progetti Unicode.
virtual void ParseParam(
const char* pszParam,
BOOL bFlag,
BOOL bLast);
virtual void ParseParam(
const TCHAR* pszParam,
BOOL bFlag,
BOOL bLast);
Parametri
pszParam
Parametro o flag.
bFlag
Indica se pszParam
è un parametro o un flag.
bLast
Indica se si tratta dell'ultimo parametro o flag nella riga di comando.
Osservazioni:
CWinApp::ParseCommandLine
chiama ParseParam
una volta per ogni parametro o flag nella riga di comando, passando l'argomento a pszParam
. Se il primo carattere del parametro è o -
, /
viene rimosso e bFlag
viene impostato su TRUE
. Quando si analizza il parametro finale, bLast
è impostato su TRUE
.
L'implementazione predefinita di questa funzione riconosce i flag seguenti: /p
, /pt
, /Automation
/dde
, e /Embedding
, come illustrato nella tabella seguente:
Argomento della riga di comando | Comando eseguito |
---|---|
app | Nuovo file. |
nome file dell'app | Aprire il file. |
nome file dell'app /p |
Stampare il file nella stampante predefinita. |
porta del driver della stampante nome file dell'app /pt |
Stampa il file nella stampante specificata. |
app /dde |
Avviare e attendere il comando DDE. |
app /Automation |
Avviare come server di automazione OLE. |
app /Embedding |
Avviare per modificare un elemento OLE incorporato. |
app /Register app /Regserver |
Informa l'applicazione di eseguire qualsiasi attività di registrazione. |
app /Unregister app /Unregserver |
Informa l'applicazione di eseguire qualsiasi attività di annullamento della registrazione. |
Queste informazioni vengono archiviate in m_bRunAutomated
, m_bRunEmbedded
e m_nShellCommand
. I flag sono contrassegnati da una barra /
o un trattino -
.
L'implementazione predefinita inserisce il primo parametro non flag in m_strFileName
. Nel caso del /pt
flag, l'implementazione predefinita inserisce rispettivamente il secondo, il terzo e il quarto parametro non flag in m_strPrinterName
, m_strDriverName
e m_strPortName
.
L'implementazione predefinita imposta anche su m_bShowSplash
TRUE
solo nel caso di un nuovo file. Nel caso di un nuovo file, l'utente ha eseguito azioni che coinvolgono l'applicazione stessa. In qualsiasi altro caso, inclusa l'apertura di file esistenti tramite la shell, l'azione dell'utente implica direttamente il file. In un punto di vista incentrato sui documenti, la schermata iniziale non deve annunciare l'avvio dell'applicazione.
Eseguire l'override di questa funzione nella classe derivata per gestire altri valori di flag e parametri.
Vedi anche
CObject
Classe
Grafico della gerarchia
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand