Du arbetar offline, väntar på att återansluta till Internet

Ako získať popisovač okno konzoly (HWND)

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:124103
SUHRN
Môže byť užitočné manipulovať okno spojené s konzolouaplikácia. Rozhranie API systému Win32 poskytuje žiadna priama metóda na získanieokno popisovač priradený aplikácia konzoly. Môžete všakzískať popisovač okno prostredníctvom volania FindWindow(). Táto funkcia načítaokno popisovač založený na názov triedy alebo názov okna.

Volajte GetConsoleTitle() zistiť aktuálny názov konzoly. Potom dodávkyaktuálny názov konzoly na FindWindow().
DALSIE INFORMACIE
Pretože viacero okien môže mať rovnaký názov, môžete zmeniťsúčasné konzoly window title do jedinečný názov. Toto pomôže zabrániťnesprávne okno popisovač pred vrátením. SetConsoleTitle() sa používa na zmenuaktuálny názov okna konzoly. Tu je proces:
  1. Volajte GetConsoleTitle() uložiť aktuálny názov okna konzoly.
  2. Volajte SetConsoleTitle() zmeniť názov konzoly na jedinečný názov.
  3. Sleep(40) hovor na zabezpečenie záhlavie okna bol aktualizovaný.
  4. Hovor FindWindow (NULL, uniquetitle), na získanie HWND Táto výzva vráti HWND--alebo NULL, ak operácia zlyhala.
  5. Hovor SetConsoleTitle() s hodnotou načítané z kroku 1, na obnoviť pôvodný názov okna.
Otestovať môžete výsledné HWND. Napríklad, môžete otestovať, čiVráti HWND zodpovedá súčasného procesu volanímGetWindowText() na HWND a porovnáva výsledok soGetConsoleTitle().

Výsledné HWND nie je zaručená vhodný pre všetky okno rukoväťoperácie.

Vzorky kód

Nasledujúca funkcia načíta aktuálneho okna konzoly aplikáciePopisovač (HWND). Ak funkcia úspešné, vrátená hodnota je rukoväťokno konzoly. Ak funkcia zlyhá, vrátená hodnota je NULL. NiektoréKontrola chýb je vynechaný, pre stručnosť.
   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);   }				

Upozornenie: Tento článok bol preložený automaticky.

Egenskaper

Artikel-id: 124103 – senaste granskning 10/10/2011 11:49:00 – revision: 2.0

  • kbhowto kbwndw kbmt KB124103 KbMtsk
Feedback