Dela via


CCommandLineInfo-klass

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

app/Regserver
Informerar programmet om att utföra registreringsuppgifter.
app/Unregister

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

CObject

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 Nyttarkivmenyn (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::FileNew Anger att inget filnamn hittades på kommandoraden.

  • CCommandLineInfo::FileOpen Anger att ett filnamn hittades på kommandoraden och att ingen av följande flaggor hittades på kommandoraden: /p, /pt, /dde.

  • CCommandLineInfo::FilePrint Anger att /p flaggan hittades på kommandoraden.

  • CCommandLineInfo::FilePrintTo Anger att /pt flaggan hittades på kommandoraden.

  • CCommandLineInfo::FileDDE Anger att /dde flaggan hittades på kommandoraden.

  • CCommandLineInfo::AppRegister Anger att /Register flaggan eller /Regserver hittades på kommandoraden och att programmet ombads att registrera sig.

  • CCommandLineInfo::AppUnregister Anger att /Unregister programmet eller /Unregserver ombads avregistrera.

  • CCommandLineInfo::RestartByRestartManager Anger att programmet startades om av omstartshanteraren.

  • CCommandLineInfo::FileNothing Inaktiverar 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ända CCommandLineInfo::FileNothing som gränssnittskommando när det anropar ProcessShellCommand. ProcessShellCommand anropas av alla InitInstance( )CWinApp hä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/Register

app/Regserver
Informerar programmet om att utföra registreringsuppgifter.
app/Unregister

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