Teď jste offline a čekáte, až se znova připojí internet.

Jak získat popisovač okna konzoly (HWND)

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:124103
Souhrn
Může být užitečné pro práci s oknem spojených s konzolouaplikace. Poskytuje rozhraní Win32 API žádná přímá metoda pro získáníPopisovač okna přidružené aplikace konzoly. Můžete všakZískejte popisovač okna pomocí volání FindWindow(). Tato funkce zkopírujePopisovač okna na základě názvu třídy nebo název okna.

Volání GetConsoleTitle() zjistit aktuální název konzoly. Potom dodataktuální název konzoly pro FindWindow().
Další informace
Protože více oken může mít stejný název, měli byste změnitaktuální název okna konzoly jedinečný název. To pomůže zabránitokno chybný popisovač z vracených. Změnit pomocí SetConsoleTitle()aktuální název okna konzoly. Zde je proces:
  1. Volání GetConsoleTitle() uložit aktuální záhlaví okna konzoly.
  2. Volání SetConsoleTitle() změna názvu konzolu jedinečný název.
  3. Volání Sleep(40), aby že byl aktualizován název okna.
  4. Volání FindWindow (NULL, uniquetitle), získat HWND Volání vrátí HWND--nebo NULL, pokud operace se nezdařila.
  5. Volání SetConsoleTitle() s hodnotou načíst z kroku 1, Obnovte původní záhlaví okna.
Je vhodné otestovat výsledný HWND. Například můžete otestovat a zjistěte, zdavrácený že hWnd odpovídá aktuální proces volánímGetWindowText() na HWND a porovná výsledek sGetConsoleTitle().

Výsledné HWND je nemusí být vhodné pro všechny popisovač oknaoperace.

Ukázkový kód

Následující funkce načte aktuální okno aplikace konzolyPopisovač (HWND). Pokud je funkce úspěšné, vrácená hodnota je popisovačokno konzoly. Pokud dojde k selhání funkce, vrácená hodnota je NULL. NěkteréKontrola chyb je vynechán, pro stručnost.
   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);   }				

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 124103 - Poslední kontrola: 04/23/2011 16:53:00 - Revize: 3.0

  • kbhowto kbwndw kbmt KB124103 KbMtcs
Váš názor
1&t=">html> var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" mp;t=">-es-ve">Venezuela - Español
id=1&t=">50&did=1&t=">&did=1&t=">ync=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" mp;t=">ody> "//c.microsoft.com/ms.js'><\/script>"); >