Aracılığıyla paylaş


CCommandLineInfo Sınıf

Uygulama başlangıcında komut satırını ayrıştırma konusunda yardımcı olur.

Sözdizimi

class CCommandLineInfo : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CCommandLineInfo::CCommandLineInfo Varsayılan CCommandLineInfo bir nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CCommandLineInfo::ParseParam Parametreleri ayrıştırmak için bu geri aramayı geçersiz kılın.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CCommandLineInfo::m_bRunAutomated Komut satırı /Automation seçeneğinin bulunduğunu gösterir.
CCommandLineInfo::m_bRunEmbedded Komut satırı /Embedding seçeneğinin bulunduğunu gösterir.
CCommandLineInfo::m_bShowSplash Giriş ekranının gösterilip gösterilmeydiğini gösterir.
CCommandLineInfo::m_nShellCommand İşlenecek kabuk komutunu gösterir.
CCommandLineInfo::m_strDriverName Kabuk komutu Yazdırılacak ise sürücü adını gösterir; aksi takdirde boş olur.
CCommandLineInfo::m_strFileName Açılacak veya yazdırılacak dosya adını gösterir; kabuk komutu Yeni veya DDE ise boş.
CCommandLineInfo::m_strPortName Kabuk komutu Yazdırılacak ise bağlantı noktası adını gösterir; aksi takdirde boş olur.
CCommandLineInfo::m_strPrinterName Kabuk komutu Yazdırılacak ise yazıcı adını gösterir; aksi takdirde boş olur.
CCommandLineInfo::m_strRestartIdentifier Yeniden başlatma yöneticisi uygulamayı yeniden başlattıysa, yeniden başlatma yöneticisinin benzersiz yeniden başlatma tanımlayıcısını gösterir.

Açıklamalar

MFC uygulaması genellikle kendi uygulama nesnesinin işlevinde bu sınıfın InitInstance yerel bir örneğini oluşturur. Bu nesne daha sonra nesnesine CWinApp::ParseCommandLinegeçirilir ve bu da nesneyi doldurmak için tekrar tekrar çağrılar ParseParam CCommandLineInfo . Ardından CCommandLineInfo nesnesi, komut satırı bağımsız değişkenlerini ve bayraklarını işlemek için öğesine CWinApp::ProcessShellCommand geçirilir.

Aşağıdaki komut satırı seçeneklerini ve parametrelerini kapsüllemek için bu nesneyi kullanabilirsiniz:

Komut satırı bağımsız değişkeni Komut yürütüldü
app Yeni dosya.
uygulama dosya adı Dosyayı açın.
uygulama /p dosya adı Dosyayı varsayılan yazıcıya yazdırın.
uygulama /pt dosya adı yazıcı sürücüsü bağlantı noktası Dosyayı belirtilen yazıcıya yazdırın.
app /dde Başlat ve DDE komutunu bekle.
app /Automation OLE otomasyon sunucusu olarak başlayın.
app /Embedding Katıştırılmış ole öğesini düzenlemek için başlayın.
app /Register

app /Regserver
Uygulamayı herhangi bir kayıt görevini gerçekleştirmesi için bilgilendirmektedir.
app /Unregister

app /Unregserver
Uygulamayı kayıt dışı görevleri gerçekleştirmesi için bilgilendirmektedir.

Diğer bayrakları ve parametre değerlerini işlemek için öğesinden CCommandLineInfo yeni bir sınıf türetin. Yeni bayrakları işlemek için geçersiz kılın ParseParam .

Devralma Hiyerarşisi

CObject

CCommandLineInfo

Gereksinimler

Üstbilgi: afxwin.h

CCommandLineInfo::CCommandLineInfo

Bu oluşturucu, varsayılan değerlerle bir CCommandLineInfo nesne oluşturur.

CCommandLineInfo();

Açıklamalar

Varsayılan ayar, giriş ekranını ( ) göstermek ve Dosya menüsünde ( m_bShowSplash=TRUE=NewFilem_nShellCommand) Yeni komutunu yürütmektir.

Uygulama çerçevesi, bu nesnenin veri üyelerini doldurmayı çağırır ParseParam .

Örnek

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

CCommandLineInfo::m_bRunAutomated

Bayrağın /Automation komut satırında bulunduğunu gösterir.

BOOL m_bRunAutomated;

Açıklamalar

ise TRUE, bu bir OLE otomasyon sunucusu olarak başlatma anlamına gelir.

CCommandLineInfo::m_bRunEmbedded

Bayrağın /Embedding komut satırında bulunduğunu gösterir.

BOOL m_bRunEmbedded;

Açıklamalar

ise TRUE, bu, katıştırılmış bir OLE öğesini düzenlemek için başlangıç anlamına gelir.

CCommandLineInfo::m_bShowSplash

Giriş ekranının görüntülenmesi gerektiğini gösterir.

BOOL m_bShowSplash;

Açıklamalar

ise TRUE, bu, bu uygulamanın giriş ekranının başlatma sırasında görüntülenmesi gerektiği anlamına gelir. varsayılan uygulaması ParseParam , bu veri üyesini TRUE değerine eşitse m_nShellCommand CCommandLineInfo::FileNewolarak ayarlar.

CCommandLineInfo::m_nShellCommand

Uygulamanın bu örneği için kabuk komutunu gösterir.

m_nShellCommand;

Açıklamalar

Bu veri üyesinin türü, sınıfında tanımlanan CCommandLineInfo aşağıdaki numaralandırılmış türdür.

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

Bu değerlerin kısa bir açıklaması için aşağıdaki listeye bakın.

  • CCommandLineInfo::FileNew Komut satırında dosya adı bulunamadığını gösterir.

  • CCommandLineInfo::FileOpen Komut satırında bir dosya adı bulunduğunu ve komut satırında aşağıdaki bayraklardan hiçbirinin bulunmadığını gösterir: /p, /pt, /dde.

  • CCommandLineInfo::FilePrint Bayrağın /p komut satırında bulunduğunu gösterir.

  • CCommandLineInfo::FilePrintTo Bayrağın /pt komut satırında bulunduğunu gösterir.

  • CCommandLineInfo::FileDDE Bayrağın /dde komut satırında bulunduğunu gösterir.

  • CCommandLineInfo::AppRegister/Register Komut satırında veya /Regserver bayrağının bulunduğunu ve uygulamadan kaydolmasının istendiğini gösterir.

  • CCommandLineInfo::AppUnregisterveya /Unregserver uygulamasının kaydını kaldırmasının /Unregister istendiğini gösterir.

  • CCommandLineInfo::RestartByRestartManager Uygulamanın yeniden başlatma yöneticisi tarafından yeniden başlatıldığını gösterir.

  • CCommandLineInfo::FileNothing Başlangıçta yeni bir MDI alt penceresinin görüntülenmesini kapatır. Tasarım gereği, Uygulama Sihirbazı tarafından oluşturulan MDI uygulamaları başlangıçta yeni bir alt pencere görüntüler. Bu özelliği kapatmak için, bir uygulama çağırdığında ProcessShellCommandkabuk komutu olarak kullanabilirCCommandLineInfo::FileNothing. ProcessShellCommandtüm CWinApp türetilmiş sınıfları tarafından InitInstance( ) çağrılır.

Örnek

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

Üçüncü bayraksız parametrenin değerini komut satırında depolar.

CString m_strDriverName;

Açıklamalar

Bu parametre genellikle Bir Yazdır kabuğu komutu için yazıcı sürücüsünün adıdır. varsayılan uygulaması ParseParam , bu veri üyesini yalnızca /pt komut satırında bayrağı bulunduğunda ayarlar.

CCommandLineInfo::m_strFileName

İlk bayraksız parametrenin değerini komut satırında depolar.

CString m_strFileName;

Açıklamalar

Bu parametre genellikle açılacak dosyanın adıdır.

CCommandLineInfo::m_strPortName

Dördüncü bayraksız parametrenin değerini komut satırında depolar.

CString m_strPortName;

Açıklamalar

Bu parametre genellikle yazdırılacak kabuk komutu için yazıcı bağlantı noktasının adıdır. varsayılan uygulaması ParseParam , bu veri üyesini yalnızca /pt komut satırında bayrağı bulunduğunda ayarlar.

CCommandLineInfo::m_strPrinterName

İkinci bayraksız parametrenin değerini komut satırında depolar.

CString m_strPrinterName;

Açıklamalar

Bu parametre genellikle Yazdır kabuğu komutu için yazıcının adıdır. varsayılan uygulaması ParseParam , bu veri üyesini yalnızca /pt komut satırında bayrağı bulunduğunda ayarlar.

CCommandLineInfo::m_strRestartIdentifier

Komut satırındaki benzersiz yeniden başlatma tanımlayıcısı.

CString m_strRestartIdentifier;

Açıklamalar

Yeniden başlatma tanımlayıcısı, uygulamanın her örneği için benzersizdir.

Yeniden başlatma yöneticisi uygulamadan çıkar ve uygulamayı yeniden başlatacak şekilde yapılandırılırsa, yeniden başlatma yöneticisi uygulamayı komut satırından yeniden başlatma tanımlayıcısı ile isteğe bağlı bir parametre olarak yürütür. Yeniden başlatma yöneticisi yeniden başlatma tanımlayıcısını kullandığında, uygulama daha önce açık olan belgeleri yeniden açabilir ve otomatik kaydedilen dosyaları kurtarabilir.

CCommandLineInfo::ParseParam

Çerçeve, komut satırından tek tek parametreleri ayrıştırmak/yorumlamak için bu işlevi çağırır. İkinci sürüm yalnızca Unicode projelerindeki ilk sürümden farklıdır.

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

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

Parametreler

pszParam
Parametresi veya bayrağı.

bFlag
Parametre mi yoksa bayrak mı olduğunu pszParam gösterir.

bLast
Bunun komut satırındaki son parametre veya bayrak olup olmadığını gösterir.

Açıklamalar

CWinApp::ParseCommandLine komut satırındaki her parametre veya bayrak için bir kez çağrısı ParseParam yaparak bağımsız değişkenini öğesine pszParamgeçirir. Parametresinin ilk karakteri veya - /ise, kaldırılır ve bFlag olarak TRUEayarlanır. Son parametre ayrıştırılırken olarak bLast ayarlanır TRUE.

Bu işlevin varsayılan uygulaması aşağıdaki bayrakları tanır: /p, /pt, /dde, /Automationve /Embedding, aşağıdaki tabloda gösterildiği gibi:

Komut satırı bağımsız değişkeni Komut yürütüldü
app Yeni dosya.
uygulama dosya adı Dosyayı açın.
uygulama /p dosya adı Dosyayı varsayılan yazıcıya yazdırın.
uygulama /pt dosya adı yazıcı sürücüsü bağlantı noktası Dosyayı belirtilen yazıcıya yazdırın.
app /dde Başlat ve DDE komutunu bekle.
app /Automation OLE otomasyon sunucusu olarak başlayın.
app /Embedding Katıştırılmış ole öğesini düzenlemek için başlayın.
app /Register

app /Regserver
Uygulamayı herhangi bir kayıt görevini gerçekleştirmesi için bilgilendirmektedir.
app /Unregister

app /Unregserver
Uygulamayı kayıt dışı görevleri gerçekleştirmesi için bilgilendirmektedir.

Bu bilgiler , m_bRunEmbeddedve m_nShellCommandiçinde m_bRunAutomateddepolanır. Bayraklar eğik çizgi / veya kısa çizgiyle -işaretlenir.

Varsayılan uygulama, ilk bayraksız parametresini içine m_strFileNameyerleştirir. Bayrak söz konusu olduğunda /pt , varsayılan uygulama ikinci, üçüncü ve dördüncü bayrak olmayan parametreleri m_strPrinterNamesırasıyla , m_strDriverNameve m_strPortNameiçine yerleştirir.

Varsayılan uygulama da yalnızca yeni bir dosya söz konusu olduğunda olarak ayarlır m_bShowSplash TRUE . Yeni bir dosya söz konusu olduğunda, kullanıcı uygulamanın kendisini kapsayan bir işlem yaptı. Kabuğu kullanarak mevcut dosyaları açmak da dahil olmak üzere diğer her durumda, kullanıcı eylemi dosyayı doğrudan içerir. Belge merkezli bir bakış açısında, giriş ekranının uygulamanın başladığını duyurması gerekmez.

Diğer bayrak ve parametre değerlerini işlemek için türetilmiş sınıfınızda bu işlevi geçersiz kılın.

Ayrıca bkz.

CObject Sınıf
Hiyerarşi Grafiği
CWinApp::ParseCommandLine
CWinApp::ProcessShellCommand