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
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 TRUE
to 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 TRUE
to 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 TRUE
to 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::FileOpen
Označ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žítCCommandLineInfo::FileNothing
jako příkaz prostředí při voláníProcessShellCommand
.ProcessShellCommand
je volánaInitInstance( )
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 TRUE
hodnotu . Při analýze konečného parametru bLast
je nastaven na TRUE
hodnotu .
Výchozí implementace této funkce rozpozná následující příznaky: /p
, /pt
, /dde
, /Automation
a /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_bRunEmbedded
a 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_strDriverName
a 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