Partager via


La classe CCommandLineInfo

Contribue à l'analyse de la ligne de commande au démarrage de l'application.

Syntaxe

class CCommandLineInfo : public CObject

Membres

Constructeurs publics

Nom Description
CCommandLineInfo::CCommandLineInfo Construit un objet par défaut CCommandLineInfo .

Méthodes publiques

Nom Description
CCommandLineInfo::ParseParam Remplacez ce rappel pour analyser des paramètres individuels.

Membres de données publics

Nom Description
CCommandLineInfo::m_bRunAutomated Indique que l’option de ligne /Automation de commande a été trouvée.
CCommandLineInfo::m_bRunEmbedded Indique que l’option de ligne /Embedding de commande a été trouvée.
CCommandLineInfo::m_bShowSplash Indique si un écran de démarrage doit être affiché.
CCommandLineInfo::m_nShellCommand Indique la commande shell à traiter.
CCommandLineInfo::m_strDriverName Indique le nom du pilote si la commande shell est Print To ; sinon vide.
CCommandLineInfo::m_strFileName Indique le nom du fichier à ouvrir ou imprimer ; vide si la commande shell est Nouvelle ou DDE.
CCommandLineInfo::m_strPortName Indique le nom du port si la commande shell est Print To ; sinon vide.
CCommandLineInfo::m_strPrinterName Indique le nom de l’imprimante si la commande shell est Print To ; sinon vide.
CCommandLineInfo::m_strRestartIdentifier Indique l’identificateur de redémarrage unique du gestionnaire de redémarrage si le gestionnaire de redémarrage a redémarré l’application.

Notes

Une application MFC crée généralement une instance locale de cette classe dans la InitInstance fonction de son objet d’application. Cet objet est ensuite passé à CWinApp::ParseCommandLine, qui appelle ParseParam à plusieurs reprises pour remplir l’objet CCommandLineInfo . L’objet CCommandLineInfo est ensuite passé pour CWinApp::ProcessShellCommand gérer les arguments et indicateurs de ligne de commande.

Vous pouvez utiliser cet objet pour encapsuler les options et paramètres de ligne de commande suivants :

Argument de ligne de commande Commande exécutée
app Nouveau fichier.
nom de fichier d’application Ouvrez le fichier .
nom de fichier d’application /p Imprimez le fichier sur l’imprimante par défaut.
port du pilote d’imprimante du nom de fichier d’application /pt Imprimez le fichier sur l’imprimante spécifiée.
appli /dde Démarrez et attendez la commande DDE.
appli /Automation Démarrez en tant que serveur OLE Automation.
appli /Embedding Démarrez pour modifier un élément OLE incorporé.
appli /Register

appli /Regserver
Informe l’application d’effectuer toutes les tâches d’inscription.
appli /Unregister

appli /Unregserver
Informe l’application d’effectuer toutes les tâches d’annulation de l’inscription.

Dérivez une nouvelle classe pour CCommandLineInfo gérer d’autres indicateurs et valeurs de paramètre. Remplacez-les ParseParam pour gérer les nouveaux indicateurs.

Hiérarchie d'héritage

CObject

CCommandLineInfo

Spécifications

En-tête : afxwin.h

CCommandLineInfo::CCommandLineInfo

Ce constructeur crée un CCommandLineInfo objet avec des valeurs par défaut.

CCommandLineInfo();

Notes

La valeur par défaut consiste à afficher l’écran de démarrage ( m_bShowSplash=TRUE) et à exécuter la commande New dans le menu Fichier ( m_nShellCommand=NewFile).

L’infrastructure d’application appelle ParseParam pour remplir les membres de données de cet objet.

Exemple

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Indique que l’indicateur /Automation a été trouvé sur la ligne de commande.

BOOL m_bRunAutomated;

Notes

Si TRUE, cela signifie démarrer en tant que serveur OLE Automation.

CCommandLineInfo::m_bRunEmbedded

Indique que l’indicateur /Embedding a été trouvé sur la ligne de commande.

BOOL m_bRunEmbedded;

Notes

Si TRUE, cela signifie que vous démarrez pour modifier un élément OLE incorporé.

CCommandLineInfo::m_bShowSplash

Indique que l’écran de démarrage doit être affiché.

BOOL m_bShowSplash;

Notes

Si TRUE, cela signifie que l’écran de démarrage de cette application doit s’afficher au démarrage. Implémentation par défaut des jeux de ce membre de ParseParam données si m_nShellCommand elle est égale à CCommandLineInfo::FileNew.TRUE

CCommandLineInfo::m_nShellCommand

Indique la commande shell pour cette instance de l’application.

m_nShellCommand;

Notes

Le type de ce membre de données est le type énuméré suivant, qui est défini dans la CCommandLineInfo classe.

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

Pour obtenir une brève description de ces valeurs, consultez la liste suivante.

  • CCommandLineInfo::FileNew Indique qu’aucun nom de fichier n’a été trouvé sur la ligne de commande.

  • CCommandLineInfo::FileOpenIndique qu’un nom de fichier a été trouvé sur la ligne de commande et qu’aucun des indicateurs suivants n’a été trouvé sur la ligne de commande : /p, /pt. /dde

  • CCommandLineInfo::FilePrint Indique que l’indicateur /p a été trouvé sur la ligne de commande.

  • CCommandLineInfo::FilePrintTo Indique que l’indicateur /pt a été trouvé sur la ligne de commande.

  • CCommandLineInfo::FileDDE Indique que l’indicateur /dde a été trouvé sur la ligne de commande.

  • CCommandLineInfo::AppRegisterIndique que le ou /Regserver l’indicateur /Register a été trouvé sur la ligne de commande et que l’application a été invitée à s’inscrire.

  • CCommandLineInfo::AppUnregisterIndique que l’application ou /Unregserver l’application a été invitée à annuler l’inscription/Unregister.

  • CCommandLineInfo::RestartByRestartManager Indique que l’application a été redémarrée par le gestionnaire de redémarrage.

  • CCommandLineInfo::FileNothing Désactive l’affichage d’une nouvelle fenêtre enfant MDI au démarrage. Par conception, les applications MDI générées par l’Assistant Application affichent une nouvelle fenêtre enfant au démarrage. Pour désactiver cette fonctionnalité, une application peut utiliser CCommandLineInfo::FileNothing comme commande shell lorsqu’elle appelle ProcessShellCommand. ProcessShellCommand est appelé par toutes InitInstance( ) les CWinApp classes dérivées.

Exemple

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

Stocke la valeur du troisième paramètre non-indicateur sur la ligne de commande.

CString m_strDriverName;

Notes

Ce paramètre est généralement le nom du pilote d’imprimante pour une commande Print To shell. Implémentation par défaut des jeux de ce membre de ParseParam données uniquement si l’indicateur /pt a été trouvé sur la ligne de commande.

CCommandLineInfo::m_strFileName

Stocke la valeur du premier paramètre non-indicateur sur la ligne de commande.

CString m_strFileName;

Notes

Ce paramètre est généralement le nom du fichier à ouvrir.

CCommandLineInfo::m_strPortName

Stocke la valeur du quatrième paramètre non-indicateur sur la ligne de commande.

CString m_strPortName;

Notes

Ce paramètre est généralement le nom du port d’imprimante d’une commande Print To shell. Implémentation par défaut des jeux de ce membre de ParseParam données uniquement si l’indicateur /pt a été trouvé sur la ligne de commande.

CCommandLineInfo::m_strPrinterName

Stocke la valeur du deuxième paramètre non-indicateur sur la ligne de commande.

CString m_strPrinterName;

Notes

Ce paramètre est généralement le nom de l’imprimante pour une commande d’interpréteur de commandes Print To. Implémentation par défaut des jeux de ce membre de ParseParam données uniquement si l’indicateur /pt a été trouvé sur la ligne de commande.

CCommandLineInfo::m_strRestartIdentifier

Identificateur de redémarrage unique sur la ligne de commande.

CString m_strRestartIdentifier;

Notes

L’identificateur de redémarrage est unique pour chaque instance de l’application.

Si le gestionnaire de redémarrage quitte l’application et est configuré pour le redémarrer, le gestionnaire de redémarrage exécute l’application à partir de la ligne de commande avec l’identificateur de redémarrage en tant que paramètre facultatif. Lorsque le gestionnaire de redémarrage utilise l’identificateur de redémarrage, l’application peut rouvrir les documents précédemment ouverts et récupérer les fichiers enregistrés automatiquement.

CCommandLineInfo::ParseParam

L’infrastructure appelle cette fonction pour analyser/interpréter des paramètres individuels à partir de la ligne de commande. La deuxième version diffère du premier dans les projets Unicode.

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

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

Paramètres

pszParam
Paramètre ou indicateur.

bFlag
Indique s’il s’agit pszParam d’un paramètre ou d’un indicateur.

bLast
Indique s’il s’agit du dernier paramètre ou indicateur sur la ligne de commande.

Notes

CWinApp::ParseCommandLine appelle ParseParam une fois pour chaque paramètre ou indicateur sur la ligne de commande, en passant l’argument à pszParam. Si le premier caractère du paramètre est un - ou un /, il est supprimé et bFlag est défini sur TRUE. Lors de l’analyse du paramètre final, bLast est défini sur TRUE.

L’implémentation par défaut de cette fonction reconnaît les indicateurs suivants : /p, , /pt, /Automation/dde, et /Embedding, comme indiqué dans le tableau suivant :

Argument de ligne de commande Commande exécutée
app Nouveau fichier.
nom de fichier d’application Ouvrez le fichier .
nom de fichier d’application /p Imprimez le fichier sur l’imprimante par défaut.
port du pilote d’imprimante du nom de fichier d’application /pt Imprimez le fichier sur l’imprimante spécifiée.
appli /dde Démarrez et attendez la commande DDE.
appli /Automation Démarrez en tant que serveur OLE Automation.
appli /Embedding Démarrez pour modifier un élément OLE incorporé.
appli /Register

appli /Regserver
Informe l’application d’effectuer toutes les tâches d’inscription.
appli /Unregister

appli /Unregserver
Informe l’application d’effectuer toutes les tâches d’annulation de l’inscription.

Ces informations sont stockées dans m_bRunAutomated, m_bRunEmbeddedet m_nShellCommand. Les indicateurs sont marqués par une barre oblique / ou un trait -d’union.

L’implémentation par défaut place le premier paramètre non-indicateur dans m_strFileName. Dans le cas de l’indicateur /pt , l’implémentation par défaut place les paramètres de deuxième, troisième et quatrième non-indicateur dans m_strPrinterName, m_strDriverNameet m_strPortName, respectivement.

L’implémentation par défaut définit m_bShowSplash également la TRUE valeur uniquement dans le cas d’un nouveau fichier. Dans le cas d’un nouveau fichier, l’utilisateur a pris des mesures impliquant l’application elle-même. Dans tout autre cas, y compris l’ouverture de fichiers existants à l’aide de l’interpréteur de commandes, l’action de l’utilisateur implique directement le fichier. Dans un point de vue centré sur le document, l’écran de démarrage n’a pas besoin d’annoncer le démarrage de l’application.

Remplacez cette fonction dans votre classe dérivée pour gérer d’autres valeurs d’indicateur et de paramètre.

Voir aussi

CObject Classe
Graphique hiérarchique
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand