Nasıl yapılır: Konsolu'nu pencere tanıtıcısı (HWND) Al

Makale çevirileri Makale çevirileri
Makale numarası: 124103 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bir konsol uygulaması ile ilişkilendirilmiş bir pencereyi denetlemek yararlı olabilir. Win32 API, bir konsol uygulaması ile ilişkili pencere tanıtıcısı almak için doğrudan bir yöntem sağlar. Ancak, pencere tanıtıcısı tarafından arama FindWindow() elde edebilirsiniz. Bu işlev, bir pencere tanıtıcısı bir sınıf adı veya pencere adı temel alır.

Geçerli konsol başlığı belirlemek için GetConsoleTitle() arayın. Daha sonra geçerli konsol hitap FindWindow() sağlayın.

Daha fazla bilgi

Birden çok pencere başlığını aynı olabilir, çünkü geçerli konsol penceresi başlığı için benzersiz bir başlık değiştirmeniz gerekir. Bu durum, yanlış pencere tanıtıcısı, iade edilen engellenmesine yardımcı olur. SetConsoleTitle() geçerli konsol penceresi başlığını değiştirmek için kullanın. Işlem aşağıdadır:
  1. Geçerli konsol penceresi başlığı kaydetmek için GetConsoleTitle() arayın.
  2. Konsol başlığı için benzersiz bir başlığı değiştirmek için SetConsoleTitle() arayın.
  3. Çağrı Sleep(40) pencere başlığını sağlamak için güncelleştirildi.
  4. Işlem başarısız oldu (NULL, uniquetitle) the HWND, bu çağrıyı almak için arama FindWindow HWND--veya NULL verir.
  5. Çağrı SetConsoleTitle() değerle özgün pencere başlığını geri adımından 1, alındı.
Sonuçta elde edilen HWND sınamanız gerekir. Örneğin, döndürülen HWND GetWindowText() üzerinde HWND çağrılıyor ve sonucu GetConsoleTitle() ile karşılaştırma geçerli işlemi ile karşılık, bkz: sınayabilirsiniz.

Sonuçta elde edilen HWND, tüm pencere tanıtıcısı işlemleri için uygun olmasını garanti edilmez.

Örnek kod

Aşağıdaki işlevi, geçerli konsol uygulaması pencere tanıtıcısı (HWND) alır. Işlevin başarılı olursa, döndürülen tanıtıcı konsol penceresinin değerdir. Işlev başarısız olursa, sonuç değeri NULL olur. Bazı hata denetimi, kısaltma için atlandı.
   HWND GetConsoleHwnd(void)
   {
       #define MY_BUFSIZE 1024 // Buffer size for console window titles.
       HWND hwndFound;         // This is what is returned to the caller.
       char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
                                           // WindowTitle.
       char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
                                           // WindowTitle.

       // Fetch current window title.

       GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);

       // Format a "unique" NewWindowTitle.

       wsprintf(pszNewWindowTitle,"%d/%d",
                   GetTickCount(),
                   GetCurrentProcessId());

       // Change current window title.

       SetConsoleTitle(pszNewWindowTitle);

       // Ensure window title has been updated.

       Sleep(40);

       // Look for NewWindowTitle.

       hwndFound=FindWindow(NULL, pszNewWindowTitle);

       // Restore original window title.

       SetConsoleTitle(pszOldWindowTitle);

       return(hwndFound);
   }
				

Özellikler

Makale numarası: 124103 - Last Review: 11 Temmuz 2005 Pazartesi - Gözden geçirme: 1.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Platform Software Development Kit - Ocak 2000 Sürümü
Anahtar Kelimeler: 
kbmt kbhowto kbwndw KB124103 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:124103

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com