Închide fereastra străină

Contract de închiriere pentru www.alsena.ru depozitare temporară.

Am destul de des întrebat despre cât de aproape de fereastră altcuiva. Printre Win API este un CloseWindow funcție, și cele mai multe încercări să-l folosească, dar numai ca urmare a ferestrei este redusă la minimum, dar nu este închis. Ce să fac?

Răspunsul este evident, dacă citiți cu atenție secțiunea 3.1. În ea, am vorbit despre faptul că, atunci când opriți sistemul de operare al computerului trimite un mesaj la toate ferestrele cu o cerere de a închide. Trebuie să facem același lucru.

Să creeze un exemplu simplu, în care căuta o anumită fereastră, iar dacă există, să-i trimită un mesaj WM_QUIT sensul de închidere. În fereastra principală, avem nevoie doar de un singur buton pentru eveniment OnClick care va avea loc închiderea (a se vedea 3.1).

Listarea 3.1. Codul de închidere a unei alte ferestre

Procedura TForml ButtonlClick (Expeditor: TObject); var WND: HWND; începe WND • = FindWindow (Ni1 'Untitled - Notepad'), în cazul în care WND <> 0 apoi PostMessage (wnd. WM_QUIT. 1.0).

Pentru a pune în aplicare exemplu, creați o variabilă de tip HWND a ferestrei pentru a salva ID-ul, care trebuie să fie închise, dar în primul rând este necesar să se găsească o fereastră. Pentru a face acest lucru, utilizați funcția FindWindow. Ea are nevoie să treacă doi parametri: Windows clasă și textul titlului. Nu vom complica viața definiției de clasă, astfel încât să lăsați acest parametru este zero, și vom căuta al doilea parametru. În Listing Set antetul programului „Notepad“. Căutare în rezervă Rezultatul special desemnat pentru această variabilă.

Când căutarea este sigur pentru a verifica rezultatul. Dacă avem un non-valoare zero, fereastra se găsește, în caz contrar a apărut eroarea, iar fereastra probabil absentă.

Acum trimite un mesaj. Acesta utilizează funcția PostMessage are următorii parametri:

• lParam - al doilea parametru mesaj. Pentru posturile nu WMQUIT utilizate.

Deschideți „Notepad“ cu un document gol și rula programul nostru. După ce faceți clic pe butonul „Notepad“ ar trebui să se închidă.

exemple de cod sursă discutate aici este pe CD-ROM-ul în sursele de directorul \ ch03 \ Închide fereastra.