Freigeben über


CCommandLineInfo-Klasse

Unterstützt die Analyse der Befehlszeile beim Anwendungsstart.

Syntax

class CCommandLineInfo : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CCommandLineInfo::CCommandLineInfo Erstellt ein Standardobjekt CCommandLineInfo .

Öffentliche Methoden

Name Beschreibung
CCommandLineInfo::ParseParam Überschreiben Sie diesen Rückruf, um einzelne Parameter zu analysieren.

Öffentliche Datenmember

Name Beschreibung
CCommandLineInfo::m_bRunAutomated Gibt an, dass die Befehlszeilenoption /Automation gefunden wurde.
CCommandLineInfo::m_bRunEmbedded Gibt an, dass die Befehlszeilenoption /Embedding gefunden wurde.
CCommandLineInfo::m_bShowSplash Gibt an, ob ein Begrüßungsbildschirm angezeigt werden soll.
CCommandLineInfo::m_nShellCommand Gibt den Shellbefehl an, der verarbeitet werden soll.
CCommandLineInfo::m_strDriverName Gibt den Treibernamen an, wenn der Shellbefehl "Drucken in" ist; andernfalls leer.
CCommandLineInfo::m_strFileName Gibt den Dateinamen an, der geöffnet oder gedruckt werden soll; leer, wenn der Shellbefehl "Neu" oder "DDE" ist.
CCommandLineInfo::m_strPortName Gibt den Portnamen an, wenn der Shellbefehl "Drucken in" lautet. andernfalls leer.
CCommandLineInfo::m_strPrinterName Gibt den Druckernamen an, wenn der Shellbefehl "Drucken in" lautet; andernfalls leer.
CCommandLineInfo::m_strRestartIdentifier Gibt den eindeutigen Neustartbezeichner für den Neustart-Manager an, wenn der Neustart-Manager die Anwendung neu gestartet hat.

Hinweise

Eine MFC-Anwendung erstellt in der Regel eine lokale Instanz dieser Klasse in der InitInstance Funktion des Anwendungsobjekts. Dieses Objekt wird dann an CWinApp::ParseCommandLineübergeben, an das wiederholt aufgerufen ParseParam wird, um das CCommandLineInfo Objekt auszufüllen. Das CCommandLineInfo Objekt wird dann übergeben, um CWinApp::ProcessShellCommand die Befehlszeilenargumente und Flags zu behandeln.

Sie können dieses Objekt verwenden, um die folgenden Befehlszeilenoptionen und -parameter zu kapseln:

Befehlszeilenargument Befehl ausgeführt
app Neue Datei.
App-Dateiname Öffnen Sie die Datei .
App-Dateiname /p Druckdatei auf Standarddrucker.
Port des App-Dateinamendruckertreibers /pt Druckdatei auf den angegebenen Drucker.
App /dde Starten und warten Sie den DDE-Befehl.
App /Automation Starten Sie als OLE-Automatisierungsserver.
App /Embedding Beginnen Sie, um ein eingebettetes OLE-Element zu bearbeiten.
App /Register

App /Regserver
Informiert die Anwendung, alle Registrierungsaufgaben auszuführen.
App /Unregister

App /Unregserver
Teilt der Anwendung mit, dass alle Nichtregistrierungsaufgaben ausgeführt werden.

Leiten Sie eine neue Klasse ab CCommandLineInfo , um andere Flags und Parameterwerte zu behandeln. Überschreiben ParseParam , um die neuen Flags zu behandeln.

Vererbungshierarchie

CObject

CCommandLineInfo

Anforderungen

Header: afxwin.h

CCommandLineInfo::CCommandLineInfo

Dieser Konstruktor erstellt ein CCommandLineInfo Objekt mit Standardwerten.

CCommandLineInfo();

Hinweise

Der Standardwert ist das Anzeigen des Begrüßungsbildschirms ( m_bShowSplash=TRUE) und das Ausführen des Befehls "Neu " im Menü "Datei " ( m_nShellCommand=NewFile).

Das Anwendungsframework ruft ParseParam auf, um Datenmmber dieses Objekts auszufüllen.

Beispiel

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Gibt an, dass das /Automation Flag in der Befehlszeile gefunden wurde.

BOOL m_bRunAutomated;

Hinweise

Wenn TRUE, bedeutet dies, dass sie als OLE-Automatisierungsserver gestartet werden.

CCommandLineInfo::m_bRunEmbedded

Gibt an, dass das /Embedding Flag in der Befehlszeile gefunden wurde.

BOOL m_bRunEmbedded;

Hinweise

Wenn TRUE, bedeutet dies, dass sie zum Bearbeiten eines eingebetteten OLE-Elements beginnen.

CCommandLineInfo::m_bShowSplash

Gibt an, dass der Begrüßungsbildschirm angezeigt werden soll.

BOOL m_bShowSplash;

Hinweise

Wenn TRUEdies bedeutet, dass der Begrüßungsbildschirm für diese Anwendung während des Starts angezeigt werden soll. Die Standardimplementierung von ParseParam Sets this data member to TRUE if m_nShellCommand is equal to CCommandLineInfo::FileNew.

CCommandLineInfo::m_nShellCommand

Gibt den Shellbefehl für diese Instanz der Anwendung an.

m_nShellCommand;

Hinweise

Der Typ für dieses Datenelement ist der folgende Aufzählungstyp, der in der CCommandLineInfo Klasse definiert ist.

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

Eine kurze Beschreibung dieser Werte finden Sie in der folgenden Liste.

  • CCommandLineInfo::FileNew Gibt an, dass in der Befehlszeile kein Dateiname gefunden wurde.

  • CCommandLineInfo::FileOpenGibt an, dass in der Befehlszeile ein Dateiname gefunden wurde und dass keine der folgenden Flags in der Befehlszeile gefunden wurde: /p, , /pt/dde.

  • CCommandLineInfo::FilePrint Gibt an, dass das /p Flag in der Befehlszeile gefunden wurde.

  • CCommandLineInfo::FilePrintTo Gibt an, dass das /pt Flag in der Befehlszeile gefunden wurde.

  • CCommandLineInfo::FileDDE Gibt an, dass das /dde Flag in der Befehlszeile gefunden wurde.

  • CCommandLineInfo::AppRegister Gibt an, dass das /Register /Regserver Flag in der Befehlszeile gefunden wurde und die Anwendung zur Registrierung aufgefordert wurde.

  • CCommandLineInfo::AppUnregister Gibt an, dass die /Unregister Registrierung der /Unregserver Anwendung aufgehoben wurde.

  • CCommandLineInfo::RestartByRestartManager Gibt an, dass die Anwendung vom Neustart-Manager neu gestartet wurde.

  • CCommandLineInfo::FileNothing Deaktiviert die Anzeige eines neuen untergeordneten MDI-Fensters beim Start. Im Entwurf zeigen vom Anwendungs-Assistenten generierte MDI-Anwendungen ein neues untergeordnetes Fenster beim Start an. Um dieses Feature zu deaktivieren, kann eine Anwendung beim Aufrufen ProcessShellCommandals Shellbefehl verwendet CCommandLineInfo::FileNothing werden. ProcessShellCommand wird von allen InitInstance( ) CWinApp abgeleiteten Klassen aufgerufen.

Beispiel

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

Speichert den Wert des dritten Nicht-Flag-Parameters in der Befehlszeile.

CString m_strDriverName;

Hinweise

Dieser Parameter ist in der Regel der Name des Druckertreibers für einen Druck-To-Shell-Befehl. Die Standardimplementierung von ParseParam Sets dieses Datenelements nur, wenn das /pt Flag in der Befehlszeile gefunden wurde.

CCommandLineInfo::m_strFileName

Speichert den Wert des ersten Nicht-Flag-Parameters in der Befehlszeile.

CString m_strFileName;

Hinweise

Dieser Parameter ist in der Regel der Name der zu öffnenden Datei.

CCommandLineInfo::m_strPortName

Speichert den Wert des vierten Nicht-Flag-Parameters in der Befehlszeile.

CString m_strPortName;

Hinweise

Dieser Parameter ist in der Regel der Name des Druckerports für einen Druck-To-Shell-Befehl. Die Standardimplementierung von ParseParam Sets dieses Datenelements nur, wenn das /pt Flag in der Befehlszeile gefunden wurde.

CCommandLineInfo::m_strPrinterName

Speichert den Wert des zweiten Nicht-Flag-Parameters in der Befehlszeile.

CString m_strPrinterName;

Hinweise

Dieser Parameter ist in der Regel der Name des Druckers für einen Befehl 'Drucken in'. Die Standardimplementierung von ParseParam Sets dieses Datenelements nur, wenn das /pt Flag in der Befehlszeile gefunden wurde.

CCommandLineInfo::m_strRestartIdentifier

Der eindeutige Neustartbezeichner in der Befehlszeile.

CString m_strRestartIdentifier;

Hinweise

Der Neustartbezeichner ist für jede Instanz der Anwendung eindeutig.

Wenn der Neustart-Manager die Anwendung beendet und für den Neustart konfiguriert ist, führt der Neustart-Manager die Anwendung über die Befehlszeile mit dem Neustartbezeichner als optionalen Parameter aus. Wenn der Neustart-Manager den Neustartbezeichner verwendet, kann die Anwendung die zuvor geöffneten Dokumente erneut öffnen und automatisch gespeicherte Dateien wiederherstellen.

CCommandLineInfo::ParseParam

Das Framework ruft diese Funktion auf, um einzelne Parameter aus der Befehlszeile zu analysieren/zu interpretieren. Die zweite Version unterscheidet sich von der ersten nur in Unicode-Projekten.

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

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

Parameter

pszParam
Der Parameter oder die Kennzeichnung.

bFlag
Gibt an, ob pszParam es sich um einen Parameter oder ein Flag handelt.

bLast
Gibt an, ob dies der letzte Parameter oder das letzte Flag in der Befehlszeile ist.

Hinweise

CWinApp::ParseCommandLine ruft ParseParam einmal für jeden Parameter oder jedes Flag in der Befehlszeile auf, und übergibt das Argument an pszParam. Wenn das erste Zeichen des Parameters ein - oder ein /ist, wird es entfernt und bFlag auf .TRUE Beim Analysieren des endgültigen Parameters bLast wird auf TRUE.

Die Standardimplementierung dieser Funktion erkennt die folgenden Flags: /p, , /pt, /dde, /Automationund /Embedding, wie in der folgenden Tabelle dargestellt:

Befehlszeilenargument Befehl ausgeführt
app Neue Datei.
App-Dateiname Öffnen Sie die Datei .
App-Dateiname /p Druckdatei auf Standarddrucker.
Port des App-Dateinamendruckertreibers /pt Druckdatei auf den angegebenen Drucker.
App /dde Starten und warten Sie den DDE-Befehl.
App /Automation Starten Sie als OLE-Automatisierungsserver.
App /Embedding Beginnen Sie, um ein eingebettetes OLE-Element zu bearbeiten.
App /Register

App /Regserver
Informiert die Anwendung, alle Registrierungsaufgaben auszuführen.
App /Unregister

App /Unregserver
Teilt der Anwendung mit, dass alle Nichtregistrierungsaufgaben ausgeführt werden.

Diese Informationen werden in m_bRunAutomated, m_bRunEmbeddedund m_nShellCommand. Kennzeichnungen werden entweder durch einen Schrägstrich / oder Bindestrich -markiert.

Die Standardimplementierung fügt den ersten Parameter ohne Kennzeichnung in m_strFileName. Im Fall der /pt Kennzeichnung setzt die Standardimplementierung die Parameter "second", "third" und "fourth non-flag" in m_strPrinterName, m_strDriverNamebzw m_strPortName. ".

Die Standardimplementierung wird auch nur für den Fall einer neuen Datei festgelegt m_bShowSplash TRUE . Im Falle einer neuen Datei hat der Benutzer Maßnahmen ergriffen, die die Anwendung selbst betreffen. In jedem anderen Fall, einschließlich des Öffnens vorhandener Dateien mithilfe der Shell, umfasst die Benutzeraktion die Datei direkt. In einem dokumentorientierten Standpunkt muss der Begrüßungsbildschirm die Anwendung nicht ankündigen.

Überschreiben Sie diese Funktion in der abgeleiteten Klasse, um andere Flag- und Parameterwerte zu behandeln.

Siehe auch

CObject-Klasse
Hierarchiediagramm
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand