CCommandLineInfo
Klasa
Ułatwia analizowanie wiersza polecenia podczas uruchamiania aplikacji.
Składnia
class CCommandLineInfo : public CObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CCommandLineInfo::CCommandLineInfo |
Tworzy obiekt domyślny CCommandLineInfo . |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CCommandLineInfo::ParseParam |
Zastąpij to wywołanie zwrotne, aby przeanalizować poszczególne parametry. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CCommandLineInfo::m_bRunAutomated |
Wskazuje, że została znaleziona opcja wiersza /Automation polecenia. |
CCommandLineInfo::m_bRunEmbedded |
Wskazuje, że została znaleziona opcja wiersza /Embedding polecenia. |
CCommandLineInfo::m_bShowSplash |
Wskazuje, czy powinien zostać wyświetlony ekran powitalny. |
CCommandLineInfo::m_nShellCommand |
Wskazuje polecenie powłoki do przetworzenia. |
CCommandLineInfo::m_strDriverName |
Wskazuje nazwę sterownika, jeśli polecenie powłoki to Print To; w przeciwnym razie puste. |
CCommandLineInfo::m_strFileName |
Wskazuje nazwę pliku do otwarcia lub wydrukowania; pusty, jeśli polecenie powłoki to New lub DDE. |
CCommandLineInfo::m_strPortName |
Wskazuje nazwę portu, jeśli polecenie powłoki to Print To; w przeciwnym razie puste. |
CCommandLineInfo::m_strPrinterName |
Wskazuje nazwę drukarki, jeśli polecenie powłoki to Drukuj do; w przeciwnym razie puste. |
CCommandLineInfo::m_strRestartIdentifier |
Wskazuje unikatowy identyfikator ponownego uruchomienia menedżera ponownego uruchamiania, jeśli menedżer ponownego uruchamiania ponownie uruchomił aplikację. |
Uwagi
Aplikacja MFC zazwyczaj tworzy lokalne wystąpienie tej klasy w InitInstance
funkcji jej obiektu aplikacji. Ten obiekt jest następnie przekazywany do CWinApp::ParseCommandLine
obiektu , który wielokrotnie wywołuje metodę ParseParam
wypełniania CCommandLineInfo
obiektu. Następnie CCommandLineInfo
obiekt jest przekazywany do CWinApp::ProcessShellCommand
obsługi argumentów i flag wiersza polecenia.
Tego obiektu można użyć do hermetyzacji następujących opcji wiersza polecenia i parametrów:
Argument wiersza polecenia | Wykonane polecenie |
---|---|
App | Nowy plik. |
nazwa pliku aplikacji | Otwórz plik. |
nazwa pliku aplikacji /p |
Drukuj plik do drukarki domyślnej. |
port sterownika drukarki nazwy pliku aplikacji /pt |
Drukuj plik na określonej drukarce. |
App /dde |
Uruchom polecenie DDE i poczekaj na nie. |
App /Automation |
Uruchom jako serwer automatyzacji OLE. |
App /Embedding |
Uruchom polecenie , aby edytować osadzony element OLE. |
App /Register App /Regserver |
Informuje aplikację o wykonywaniu wszelkich zadań rejestracji. |
App /Unregister App /Unregserver |
Informuje aplikację o wykonywaniu wszelkich zadań wyrejestrowania. |
Utwórz nową klasę z CCommandLineInfo
, aby obsługiwać inne flagi i wartości parametrów. Zastąpij ParseParam
obsługę nowych flag.
Hierarchia dziedziczenia
CCommandLineInfo
Wymagania
Nagłówek: afxwin.h
CCommandLineInfo::CCommandLineInfo
Ten konstruktor tworzy CCommandLineInfo
obiekt z wartościami domyślnymi.
CCommandLineInfo();
Uwagi
Wartością domyślną jest wyświetlenie ekranu powitalnego ( m_bShowSplash=TRUE
) i wykonanie polecenia Nowy w menu Plik ( m_nShellCommand
=NewFile
).
Struktura aplikacji wywołuje metodę ParseParam
wypełniania elementów członkowskich danych tego obiektu.
Przykład
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CCommandLineInfo::m_bRunAutomated
Wskazuje, że flaga /Automation
została znaleziona w wierszu polecenia.
BOOL m_bRunAutomated;
Uwagi
Jeśli TRUE
wartość , oznacza to uruchomienie jako serwera automatyzacji OLE.
CCommandLineInfo::m_bRunEmbedded
Wskazuje, że flaga /Embedding
została znaleziona w wierszu polecenia.
BOOL m_bRunEmbedded;
Uwagi
Jeśli TRUE
wartość , oznacza to uruchomienie do edycji osadzonego elementu OLE.
CCommandLineInfo::m_bShowSplash
Wskazuje, że powinien zostać wyświetlony ekran powitalny.
BOOL m_bShowSplash;
Uwagi
Jeśli TRUE
wartość , oznacza to, że ekran powitalny dla tej aplikacji powinien być wyświetlany podczas uruchamiania. Domyślna implementacja ustawia ten element członkowski ParseParam
danych na TRUE
wartość , jeśli m_nShellCommand
jest równy CCommandLineInfo::FileNew
.
CCommandLineInfo::m_nShellCommand
Wskazuje polecenie powłoki dla tego wystąpienia aplikacji.
m_nShellCommand;
Uwagi
Typ dla tego elementu członkowskiego danych jest następującym wyliczonym typem, który jest zdefiniowany w CCommandLineInfo
klasie.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE,
AppRegister,
AppUnregister,
RestartByRestartManager,
FileNothing = -1
};
Aby zapoznać się z krótkim opisem tych wartości, zobacz poniższą listę.
CCommandLineInfo::FileNew
Wskazuje, że w wierszu polecenia nie znaleziono nazwy pliku.CCommandLineInfo::FileOpen
Wskazuje, że nazwa pliku została znaleziona w wierszu polecenia i że żadne z następujących flag nie zostały znalezione w wierszu polecenia:/p
, ,/pt
/dde
.CCommandLineInfo::FilePrint
Wskazuje, że flaga/p
została znaleziona w wierszu polecenia.CCommandLineInfo::FilePrintTo
Wskazuje, że flaga/pt
została znaleziona w wierszu polecenia.CCommandLineInfo::FileDDE
Wskazuje, że flaga/dde
została znaleziona w wierszu polecenia.CCommandLineInfo::AppRegister
Wskazuje, że flaga/Register
lub/Regserver
została znaleziona w wierszu polecenia, a aplikacja została poproszona o zarejestrowanie.CCommandLineInfo::AppUnregister
Wskazuje, że/Unregister
aplikacja lub/Unregserver
została poproszona o wyrejestrowanie.CCommandLineInfo::RestartByRestartManager
Wskazuje, że aplikacja została ponownie uruchomiona przez menedżera ponownego uruchamiania.CCommandLineInfo::FileNothing
Wyłącza wyświetlanie nowego okna podrzędnego MDI podczas uruchamiania. Zgodnie z projektem aplikacje generowane przez kreatora mdI wyświetlają nowe okno podrzędne podczas uruchamiania. Aby wyłączyć tę funkcję, aplikacja może użyćCCommandLineInfo::FileNothing
jako polecenia powłoki, gdy wywołujeProcessShellCommand
polecenie .ProcessShellCommand
jest wywoływanyInitInstance( )
przez wszystkieCWinApp
klasy pochodne.
Przykład
// 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
Przechowuje wartość trzeciego parametru innego niż flaga w wierszu polecenia.
CString m_strDriverName;
Uwagi
Ten parametr jest zazwyczaj nazwą sterownika drukarki dla polecenia Print To shell. Domyślna implementacja ustawia ten element członkowski ParseParam
danych tylko wtedy, gdy flaga /pt
została znaleziona w wierszu polecenia.
CCommandLineInfo::m_strFileName
Przechowuje wartość pierwszego parametru innego niż flaga w wierszu polecenia.
CString m_strFileName;
Uwagi
Ten parametr jest zazwyczaj nazwą pliku do otwarcia.
CCommandLineInfo::m_strPortName
Przechowuje wartość czwartego parametru innego niż flaga w wierszu polecenia.
CString m_strPortName;
Uwagi
Ten parametr jest zazwyczaj nazwą portu drukarki dla polecenia Print To shell. Domyślna implementacja ustawia ten element członkowski ParseParam
danych tylko wtedy, gdy flaga /pt
została znaleziona w wierszu polecenia.
CCommandLineInfo::m_strPrinterName
Przechowuje wartość drugiego parametru innego niż flaga w wierszu polecenia.
CString m_strPrinterName;
Uwagi
Ten parametr jest zazwyczaj nazwą drukarki dla polecenia Print To shell. Domyślna implementacja ustawia ten element członkowski ParseParam
danych tylko wtedy, gdy flaga /pt
została znaleziona w wierszu polecenia.
CCommandLineInfo::m_strRestartIdentifier
Unikatowy identyfikator ponownego uruchamiania w wierszu polecenia.
CString m_strRestartIdentifier;
Uwagi
Identyfikator ponownego uruchomienia jest unikatowy dla każdego wystąpienia aplikacji.
Jeśli menedżer ponownego uruchamiania kończy aplikację i jest skonfigurowany do ponownego uruchomienia, menedżer ponownego uruchamiania wykonuje aplikację z wiersza polecenia z identyfikatorem ponownego uruchamiania jako opcjonalny parametr. Gdy menedżer ponownego uruchamiania używa identyfikatora ponownego uruchamiania, aplikacja może ponownie otworzyć wcześniej otwarte dokumenty i odzyskać automatycznie zapisane pliki.
CCommandLineInfo::ParseParam
Platforma wywołuje tę funkcję do analizowania/interpretowania poszczególnych parametrów z wiersza polecenia. Druga wersja różni się od pierwszej tylko w projektach Unicode.
virtual void ParseParam(
const char* pszParam,
BOOL bFlag,
BOOL bLast);
virtual void ParseParam(
const TCHAR* pszParam,
BOOL bFlag,
BOOL bLast);
Parametry
pszParam
Parametr lub flaga.
bFlag
Wskazuje, czy pszParam
jest parametrem, czy flagą.
bLast
Wskazuje, czy jest to ostatni parametr lub flaga w wierszu polecenia.
Uwagi
CWinApp::ParseCommandLine
wywołuje ParseParam
raz dla każdego parametru lub flagi w wierszu polecenia, przekazując argument do pszParam
. Jeśli pierwszy znak parametru to -
lub /
, jest on usuwany i bFlag
jest ustawiony na TRUE
wartość . Podczas analizowania parametru bLast
końcowego parametr jest ustawiony na TRUE
wartość .
Domyślna implementacja tej funkcji rozpoznaje następujące flagi: /p
, , /pt
/dde
, /Automation
i /Embedding
, jak pokazano w poniższej tabeli:
Argument wiersza polecenia | Wykonane polecenie |
---|---|
App | Nowy plik. |
nazwa pliku aplikacji | Otwórz plik. |
nazwa pliku aplikacji /p |
Drukuj plik do drukarki domyślnej. |
port sterownika drukarki nazwy pliku aplikacji /pt |
Drukuj plik na określonej drukarce. |
App /dde |
Uruchom polecenie DDE i poczekaj na nie. |
App /Automation |
Uruchom jako serwer automatyzacji OLE. |
App /Embedding |
Uruchom polecenie , aby edytować osadzony element OLE. |
App /Register App /Regserver |
Informuje aplikację o wykonywaniu wszelkich zadań rejestracji. |
App /Unregister App /Unregserver |
Informuje aplikację o wykonywaniu wszelkich zadań wyrejestrowania. |
Te informacje są przechowywane w plikach m_bRunAutomated
, m_bRunEmbedded
i m_nShellCommand
. Flagi są oznaczone ukośnikiem /
do przodu lub łącznikiem -
.
Domyślna implementacja umieszcza pierwszy parametr inny niż flaga w pliku m_strFileName
. W przypadku /pt
flagi domyślna implementacja umieszcza odpowiednio parametry drugiego, trzeciego i czwartego nieo flagi do m_strPrinterName
, m_strDriverName
i m_strPortName
.
Domyślna implementacja ustawia również wartość m_bShowSplash
na TRUE
tylko w przypadku nowego pliku. W przypadku nowego pliku użytkownik podjął akcję obejmującą samą aplikację. W każdym innym przypadku, w tym otwarcie istniejących plików przy użyciu powłoki, akcja użytkownika obejmuje plik bezpośrednio. W punkcie widzenia skoncentrowanym na dokumencie ekran powitalny nie musi ogłaszać uruchomienia aplikacji.
Zastąp tę funkcję w klasie pochodnej, aby obsługiwać inne wartości flag i parametrów.
Zobacz też
CObject
Klasa
Wykres hierarchii
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand