Udostępnij za pośrednictwem


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::ParseCommandLineobiektu , 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

Obiekt CObject

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 TRUEwartość , 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 TRUEwartość , 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 TRUEwartość , 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::FileOpenWskazuje, ż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łuje ProcessShellCommandpolecenie . ProcessShellCommand jest wywoływany InitInstance( ) przez wszystkie CWinApp 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 TRUEwartość . Podczas analizowania parametru bLast końcowego parametr jest ustawiony na TRUEwartość .

Domyślna implementacja tej funkcji rozpoznaje następujące flagi: /p, , /pt/dde, /Automationi /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_bRunEmbeddedi 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_strDriverNamei 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