Sdílet prostřednictvím


CCommandLineInfo Třída

Pomáhá analyzovat příkazový řádek při spuštění aplikace.

Syntaxe

class CCommandLineInfo : public CObject

Členové

Veřejné konstruktory

Název Popis
CCommandLineInfo::CCommandLineInfo Vytvoří výchozí CCommandLineInfo objekt.

Veřejné metody

Název Popis
CCommandLineInfo::ParseParam Přepište toto zpětné volání a parsovat jednotlivé parametry.

Veřejné datové členy

Název Popis
CCommandLineInfo::m_bRunAutomated Označuje, že byla nalezena možnost příkazového řádku /Automation .
CCommandLineInfo::m_bRunEmbedded Označuje, že byla nalezena možnost příkazového řádku /Embedding .
CCommandLineInfo::m_bShowSplash Označuje, jestli se má zobrazit úvodní obrazovka.
CCommandLineInfo::m_nShellCommand Označuje příkaz prostředí, který se má zpracovat.
CCommandLineInfo::m_strDriverName Označuje název ovladače, pokud je příkaz prostředí Print To; v opačném případě je prázdný.
CCommandLineInfo::m_strFileName Označuje název souboru, který má být otevřen nebo vytištěn; prázdné, pokud je příkaz prostředí Nový nebo DDE.
CCommandLineInfo::m_strPortName Označuje název portu, pokud je příkaz prostředí Print To; v opačném případě je prázdný.
CCommandLineInfo::m_strPrinterName Označuje název tiskárny, pokud je příkaz prostředí Print To; v opačném případě je prázdný.
CCommandLineInfo::m_strRestartIdentifier Označuje jedinečný identifikátor restartování správce restartování, pokud správce restartování restart restartoval aplikaci.

Poznámky

Aplikace MFC obvykle vytvoří místní instanci této třídy ve InitInstance funkci objektu aplikace. Tento objekt se pak předá CWinApp::ParseCommandLine, který opakovaně volá ParseParam vyplnit CCommandLineInfo objekt. Objekt CCommandLineInfo se pak předá pro CWinApp::ProcessShellCommand zpracování argumentů a příznaků příkazového řádku.

Tento objekt můžete použít k zapouzdření následujících možností a parametrů příkazového řádku:

Argument příkazového řádku Příkaz se spustil.
App Nový soubor.
název souboru aplikace Otevřete soubor.
název souboru aplikace /p Tisk souboru na výchozí tiskárnu
port ovladače tiskárny souboru aplikace /pt Vytiskněte soubor na zadanou tiskárnu.
App /dde Spusťte příkaz DDE a vyčkejte na příkaz DDE.
App /Automation Spusťte ho jako automatizační server OLE.
App /Embedding Spusťte úpravu vložené položky OLE.
App /Register

App /Regserver
Informuje aplikaci, aby prováděla všechny úlohy registrace.
App /Unregister

App /Unregserver
Informuje aplikaci, aby prováděla všechny úlohy zrušení registrace.

Odvození nové třídy z CCommandLineInfo zpracování jiných příznaků a hodnot parametrů. Přepsání ParseParam pro zpracování nových příznaků

Hierarchie dědičnosti

Objekt CObject

CCommandLineInfo

Požadavky

Záhlaví: afxwin.h

CCommandLineInfo::CCommandLineInfo

Tento konstruktor vytvoří CCommandLineInfo objekt s výchozími hodnotami.

CCommandLineInfo();

Poznámky

Výchozí hodnota je zobrazit úvodní obrazovku ( m_bShowSplash=TRUE) a spustit příkaz Nový v nabídce Soubor ( m_nShellCommand=NewFile).

Volání aplikační architektury ParseParam k vyplnění datových členů tohoto objektu.

Příklad

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Označuje, že se /Automation příznak našel na příkazovém řádku.

BOOL m_bRunAutomated;

Poznámky

Pokud TRUEto znamená, že se spustí jako automatizační server OLE.

CCommandLineInfo::m_bRunEmbedded

Označuje, že se /Embedding příznak našel na příkazovém řádku.

BOOL m_bRunEmbedded;

Poznámky

Pokud TRUEto znamená spuštění pro úpravu vložené položky OLE.

CCommandLineInfo::m_bShowSplash

Označuje, že úvodní obrazovka by se měla zobrazit.

BOOL m_bShowSplash;

Poznámky

Pokud TRUEto znamená úvodní obrazovku pro tuto aplikaci, měla by se při spuštění zobrazit. Výchozí implementace tohoto datového členu ParseParam TRUE nastaví, pokud m_nShellCommand je roven CCommandLineInfo::FileNew.

CCommandLineInfo::m_nShellCommand

Označuje příkaz prostředí pro tuto instanci aplikace.

m_nShellCommand;

Poznámky

Typ tohoto datového členu je následující výčtový typ, který je definován ve CCommandLineInfo třídě.

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

Stručný popis těchto hodnot najdete v následujícím seznamu.

  • CCommandLineInfo::FileNew Označuje, že na příkazovém řádku nebyl nalezen žádný název souboru.

  • CCommandLineInfo::FileOpenOznačuje, že na příkazovém řádku byl nalezen název souboru a že na příkazovém řádku nebyly nalezeny žádné z následujících příznaků: /p, , /pt/dde.

  • CCommandLineInfo::FilePrint Označuje, že se /p příznak našel na příkazovém řádku.

  • CCommandLineInfo::FilePrintTo Označuje, že se /pt příznak našel na příkazovém řádku.

  • CCommandLineInfo::FileDDE Označuje, že se /dde příznak našel na příkazovém řádku.

  • CCommandLineInfo::AppRegister Označuje, že příkazový /Register řádek nebo /Regserver příznak byl nalezen a aplikace byla požádána o registraci.

  • CCommandLineInfo::AppUnregister Označuje, že /Unregister aplikace byla /Unregserver požádána o zrušení registrace.

  • CCommandLineInfo::RestartByRestartManager Označuje, že správce restartování aplikace restartoval.

  • CCommandLineInfo::FileNothing Vypne zobrazení nového podřízeného okna MDI při spuštění. Průvodce aplikací vygenerované aplikacemi MDI záměrně zobrazí při spuštění nové podřízené okno. Chcete-li tuto funkci vypnout, může aplikace použít CCommandLineInfo::FileNothing jako příkaz prostředí při volání ProcessShellCommand. ProcessShellCommand je volána InitInstance( ) CWinApp všemi odvozenými třídami.

Příklad

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

Uloží hodnotu třetího parametru bez příznaku na příkazovém řádku.

CString m_strDriverName;

Poznámky

Tento parametr je obvykle název ovladače tiskárny pro příkaz Print To Shell. Výchozí implementace tohoto datového ParseParam člena nastaví pouze v případě, /pt že byl příznak nalezen na příkazovém řádku.

CCommandLineInfo::m_strFileName

Uloží hodnotu prvního parametru bez příznaku na příkazovém řádku.

CString m_strFileName;

Poznámky

Tento parametr je obvykle název souboru, který se má otevřít.

CCommandLineInfo::m_strPortName

Uloží hodnotu čtvrtého parametru bez příznaku na příkazovém řádku.

CString m_strPortName;

Poznámky

Tento parametr je obvykle název portu tiskárny pro příkaz Print To Shell. Výchozí implementace tohoto datového ParseParam člena nastaví pouze v případě, /pt že byl příznak nalezen na příkazovém řádku.

CCommandLineInfo::m_strPrinterName

Uloží hodnotu druhého parametru bez příznaku na příkazovém řádku.

CString m_strPrinterName;

Poznámky

Tento parametr je obvykle název tiskárny příkazu Print To Shell. Výchozí implementace tohoto datového ParseParam člena nastaví pouze v případě, /pt že byl příznak nalezen na příkazovém řádku.

CCommandLineInfo::m_strRestartIdentifier

Jedinečný identifikátor restartování na příkazovém řádku.

CString m_strRestartIdentifier;

Poznámky

Identifikátor restartování je jedinečný pro každou instanci aplikace.

Pokud správce restartování aplikaci ukončí a nakonfiguruje ji tak, aby ji restartoval, spustí správce restartování aplikaci z příkazového řádku s identifikátorem restartování jako volitelný parametr. Když správce restartování použije identifikátor restartování, může aplikace znovu otevřít dříve otevřené dokumenty a obnovit automaticky uložené soubory.

CCommandLineInfo::ParseParam

Architektura volá tuto funkci k analýze a interpretaci jednotlivých parametrů z příkazového řádku. Druhá verze se liší od první pouze v projektech Unicode.

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

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

Parametry

pszParam
Parametr nebo příznak.

bFlag
Označuje, zda pszParam je parametr nebo příznak.

bLast
Označuje, jestli se jedná o poslední parametr nebo příznak na příkazovém řádku.

Poznámky

CWinApp::ParseCommandLine volání ParseParam jednou pro každý parametr nebo příznak na příkazovém řádku a předání argumentu do pszParam. Pokud je prvním znakem parametru - nebo /znak , odebere se a bFlag nastaví se na TRUEhodnotu . Při analýze konečného parametru bLast je nastaven na TRUEhodnotu .

Výchozí implementace této funkce rozpozná následující příznaky: /p, /pt, /dde, /Automationa /Embedding, jak je znázorněno v následující tabulce:

Argument příkazového řádku Příkaz se spustil.
App Nový soubor.
název souboru aplikace Otevřete soubor.
název souboru aplikace /p Tisk souboru na výchozí tiskárnu
port ovladače tiskárny souboru aplikace /pt Vytiskněte soubor na zadanou tiskárnu.
App /dde Spusťte příkaz DDE a vyčkejte na příkaz DDE.
App /Automation Spusťte ho jako automatizační server OLE.
App /Embedding Spusťte úpravu vložené položky OLE.
App /Register

App /Regserver
Informuje aplikaci, aby prováděla všechny úlohy registrace.
App /Unregister

App /Unregserver
Informuje aplikaci, aby prováděla všechny úlohy zrušení registrace.

Tyto informace jsou uloženy v m_bRunAutomated, m_bRunEmbeddeda m_nShellCommand. Příznaky jsou označené lomítkem / nebo spojovníkem -.

Výchozí implementace umístí první parametr bez příznaku do m_strFileName. V případě příznaku /pt vloží výchozí implementace druhý, třetí a čtvrtý parametr non-flag do m_strPrinterName, m_strDriverNamea m_strPortName, v uvedeném pořadí.

Výchozí implementace se také nastaví m_bShowSplash TRUE pouze v případě nového souboru. V případě nového souboru uživatel provedl akci týkající se samotné aplikace. V každém jiném případě, včetně otevírání existujících souborů pomocí prostředí, zahrnuje akce uživatele soubor přímo. Na pohledu na dokument nemusí úvodní obrazovka oznamovat spuštění aplikace.

Tuto funkci v odvozené třídě přepište tak, aby zpracovávala jiné hodnoty příznaku a parametrů.

Viz také

CObject Třída
Graf hierarchie
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand