Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Underlättar parsning av kommandoraden vid programstart.
Syntax
class CCommandLineInfo : public CObject
Medlemmar
Offentliga konstruktorer
| Namn | Beskrivning |
|---|---|
CCommandLineInfo::CCommandLineInfo |
Konstruerar ett standardobjekt CCommandLineInfo . |
Offentliga metoder
| Namn | Beskrivning |
|---|---|
CCommandLineInfo::ParseParam |
Åsidosätt återanropet för att parsa enskilda parametrar. |
Medlemmar i offentliga data
| Namn | Beskrivning |
|---|---|
CCommandLineInfo::m_bRunAutomated |
Anger att kommandoradsalternativet /Automation hittades. |
CCommandLineInfo::m_bRunEmbedded |
Anger att kommandoradsalternativet /Embedding hittades. |
CCommandLineInfo::m_bShowSplash |
Anger om en välkomstskärm ska visas. |
CCommandLineInfo::m_nShellCommand |
Anger vilket gränssnittskommando som ska bearbetas. |
CCommandLineInfo::m_strDriverName |
Anger drivrutinsnamnet om kommandot shell är Skriv ut till. annars tom. |
CCommandLineInfo::m_strFileName |
Anger filnamnet som ska öppnas eller skrivas ut. tomt om shell-kommandot är Nytt eller DDE. |
CCommandLineInfo::m_strPortName |
Anger portnamnet om kommandot shell är Skriv ut till. annars tom. |
CCommandLineInfo::m_strPrinterName |
Anger skrivarnamnet om kommandot shell är Skriv ut till. annars tom. |
CCommandLineInfo::m_strRestartIdentifier |
Anger den unika omstartsidentifieraren för omstartshanteraren om omstartshanteraren startade om programmet. |
Anmärkningar
Ett MFC-program skapar vanligtvis en lokal instans av den InitInstance här klassen i funktionen för dess programobjekt. Det här objektet skickas sedan till CWinApp::ParseCommandLine, som upprepade gånger anropar ParseParam för att fylla CCommandLineInfo objektet. Objektet CCommandLineInfo skickas sedan till för att CWinApp::ProcessShellCommand hantera kommandoradsargumenten och flaggorna.
Du kan använda det här objektet för att kapsla in följande kommandoradsalternativ och parametrar:
| Kommandoradsargument | Kommandot körs |
|---|---|
| applikation | Ny fil. |
| appfilnamn | Öppna filen. |
app/p filnamn |
Skriv ut filen till standardskrivaren. |
app/pt filnamn skrivardrivrutinsport |
Skriv ut filen till den angivna skrivaren. |
app/dde |
Starta och vänta på DDE-kommandot. |
app/Automation |
Starta som en OLE Automation-server. |
app/Embedding |
Starta för att redigera ett inbäddat OLE-objekt. |
app/Registerapp /Regserver |
Informerar programmet om att utföra registreringsuppgifter. |
app/Unregisterapp /Unregserver |
Informerar programmet om att utföra eventuella avregistreringsuppgifter. |
Härled en ny klass från CCommandLineInfo för att hantera andra flaggor och parametervärden. Åsidosätt ParseParam för att hantera de nya flaggorna.
Arvshierarki
CCommandLineInfo
Kravspecifikation
rubrik:afxwin.h
CCommandLineInfo::CCommandLineInfo
Den här konstruktorn skapar ett CCommandLineInfo objekt med standardvärden.
CCommandLineInfo();
Anmärkningar
Standardvärdet är att visa välkomstskärmen (m_bShowSplash=TRUE) och köra kommandot Nytt på arkivmenyn (m_nShellCommand=NewFile).
Programramverket anropar ParseParam för att fylla datamedlemmar i det här objektet.
Exempel
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
CCommandLineInfo::m_bRunAutomated
Anger att /Automation flaggan hittades på kommandoraden.
BOOL m_bRunAutomated;
Anmärkningar
Om TRUEinnebär det att du startar som en OLE-automationsserver.
CCommandLineInfo::m_bRunEmbedded
Anger att /Embedding flaggan hittades på kommandoraden.
BOOL m_bRunEmbedded;
Anmärkningar
Om TRUEinnebär det att du startar för att redigera ett inbäddat OLE-objekt.
CCommandLineInfo::m_bShowSplash
Anger att välkomstskärmen ska visas.
BOOL m_bShowSplash;
Anmärkningar
Om TRUEinnebär detta att välkomstskärmen för det här programmet ska visas under starten. Standardimplementeringen av ParseParam anger den här datamedlemmen till TRUE om m_nShellCommand är lika med CCommandLineInfo::FileNew.
CCommandLineInfo::m_nShellCommand
Anger shell-kommandot för den här instansen av programmet.
m_nShellCommand;
Anmärkningar
Typen för den här datamedlemmen är följande uppräknade typ, som definieras i CCommandLineInfo klassen.
enum {
FileNew,
FileOpen,
FilePrint,
FilePrintTo,
FileDDE,
AppRegister,
AppUnregister,
RestartByRestartManager,
FileNothing = -1
};
En kort beskrivning av dessa värden finns i följande lista.
CCommandLineInfo::FileNewAnger att inget filnamn hittades på kommandoraden.CCommandLineInfo::FileOpenAnger att ett filnamn hittades på kommandoraden och att ingen av följande flaggor hittades på kommandoraden:/p,/pt,/dde.CCommandLineInfo::FilePrintAnger att/pflaggan hittades på kommandoraden.CCommandLineInfo::FilePrintToAnger att/ptflaggan hittades på kommandoraden.CCommandLineInfo::FileDDEAnger att/ddeflaggan hittades på kommandoraden.CCommandLineInfo::AppRegisterAnger att/Registerflaggan eller/Regserverhittades på kommandoraden och att programmet ombads att registrera sig.CCommandLineInfo::AppUnregisterAnger att/Unregisterprogrammet eller/Unregserverombads avregistrera.CCommandLineInfo::RestartByRestartManagerAnger att programmet startades om av omstartshanteraren.CCommandLineInfo::FileNothingInaktiverar visningen av ett nytt underordnat MDI-fönster vid start. Avsiktligt visar programguidegenererade MDI-program ett nytt underordnat fönster vid start. Om du vill inaktivera den här funktionen kan ett program användaCCommandLineInfo::FileNothingsom gränssnittskommando när det anroparProcessShellCommand.ProcessShellCommandanropas av allaInitInstance( )CWinApphärledda klasser.
Exempel
// 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
Lagrar värdet för den tredje parametern som inte är flagga på kommandoraden.
CString m_strDriverName;
Anmärkningar
Den här parametern är vanligtvis namnet på skrivardrivrutinen för ett print to shell-kommando. Standardimplementeringen av ParseParam anger endast den här datamedlemmen om /pt flaggan hittades på kommandoraden.
CCommandLineInfo::m_strFileName
Lagrar värdet för den första parametern som inte är flagga på kommandoraden.
CString m_strFileName;
Anmärkningar
Den här parametern är vanligtvis namnet på filen som ska öppnas.
CCommandLineInfo::m_strPortName
Lagrar värdet för den fjärde parametern som inte är flagga på kommandoraden.
CString m_strPortName;
Anmärkningar
Den här parametern är vanligtvis namnet på skrivarporten för ett Print To Shell-kommando. Standardimplementeringen av ParseParam anger endast den här datamedlemmen om /pt flaggan hittades på kommandoraden.
CCommandLineInfo::m_strPrinterName
Lagrar värdet för den andra parametern som inte är flagga på kommandoraden.
CString m_strPrinterName;
Anmärkningar
Den här parametern är vanligtvis namnet på skrivaren för ett print to shell-kommando. Standardimplementeringen av ParseParam anger endast den här datamedlemmen om /pt flaggan hittades på kommandoraden.
CCommandLineInfo::m_strRestartIdentifier
Den unika omstartsidentifieraren på kommandoraden.
CString m_strRestartIdentifier;
Anmärkningar
Omstartsidentifieraren är unik för varje instans av programmet.
Om omstartshanteraren avslutar programmet och har konfigurerats för att starta om det kör omstartshanteraren programmet från kommandoraden med omstartsidentifieraren som en valfri parameter. När omstartshanteraren använder omstartsidentifieraren kan programmet öppna de tidigare öppna dokumenten igen och återställa filer som sparats automatiskt.
CCommandLineInfo::ParseParam
Ramverket anropar den här funktionen för att parsa/tolka enskilda parametrar från kommandoraden. Den andra versionen skiljer sig från den första endast i Unicode-projekt.
virtual void ParseParam(
const char* pszParam,
BOOL bFlag,
BOOL bLast);
virtual void ParseParam(
const TCHAR* pszParam,
BOOL bFlag,
BOOL bLast);
Parameterar
pszParam
Parametern eller flaggan.
bFlag
Anger om pszParam är en parameter eller en flagga.
bLast
Anger om det här är den sista parametern eller flaggan på kommandoraden.
Anmärkningar
CWinApp::ParseCommandLine anropar ParseParam en gång för varje parameter eller flagga på kommandoraden och skickar argumentet till pszParam. Om det första tecknet i parametern är en - eller ett /tas det bort och bFlag är inställt på TRUE. När du parsar den sista parametern bLast anges till TRUE.
Standardimplementeringen av den här funktionen identifierar följande flaggor: /p, /pt, /dde, /Automationoch /Embedding, enligt följande tabell:
| Kommandoradsargument | Kommandot körs |
|---|---|
| applikation | Ny fil. |
| appfilnamn | Öppna filen. |
app/p filnamn |
Skriv ut filen till standardskrivaren. |
app/pt filnamn skrivardrivrutinsport |
Skriv ut filen till den angivna skrivaren. |
app/dde |
Starta och vänta på DDE-kommandot. |
app/Automation |
Starta som en OLE Automation-server. |
app/Embedding |
Starta för att redigera ett inbäddat OLE-objekt. |
app/Registerapp /Regserver |
Informerar programmet om att utföra registreringsuppgifter. |
app/Unregisterapp /Unregserver |
Informerar programmet om att utföra eventuella avregistreringsuppgifter. |
Den här informationen lagras i m_bRunAutomated, m_bRunEmbeddedoch m_nShellCommand. Flaggor markeras med antingen ett snedstreck / eller bindestreck -.
Standardimplementeringen placerar den första parametern som inte är flagga i m_strFileName. När det gäller /pt flaggan placerar standardimplementeringen parametrarna second, third och fourth non-flag i m_strPrinterName, m_strDriverNamerespektive m_strPortName.
Standardimplementeringen anges m_bShowSplash också till TRUE endast för en ny fil. När det gäller en ny fil har användaren vidtagit åtgärder som involverar själva programmet. I andra fall, inklusive att öppna befintliga filer med hjälp av gränssnittet, involverar användaråtgärden filen direkt. I en dokumentcentrerad synvinkel behöver välkomstskärmen inte meddela att programmet startas.
Åsidosätt den här funktionen i din härledda klass för att hantera andra flagg- och parametervärden.
Se även
CObject klass
hierarkidiagram
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand