Condividi tramite


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à

CObject

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::AppUnregisterIndica 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ò usare CCommandLineInfo::FileNothing come comando della shell quando chiama ProcessShellCommand. ProcessShellCommand viene chiamato da InitInstance( ) di tutte le CWinApp 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_bRunEmbeddede 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_strDriverNamee 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