Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

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

Ö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
Ö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);   }				

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 124103 - Son İnceleme: 07/11/2005 22:34:21 - Düzeltme: 1.3

Microsoft Platform Software Development Kit - Ocak 2000 Sürümü

  • kbmt kbhowto kbwndw KB124103 KbMttr
Geri bildirim
html>>