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
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 TRUE
dies 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::FileOpen
Gibt 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 AufrufenProcessShellCommand
als Shellbefehl verwendetCCommandLineInfo::FileNothing
werden.ProcessShellCommand
wird von allenInitInstance( )
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
, /Automation
und /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_bRunEmbedded
und 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_strDriverName
bzw 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