cum să se rostogolească toate ferestrele?
Bună ziua, dragă. Scopul este: prin apăsarea unui buton minimizează toate ferestrele și 4 secunde un mesaj apare cu două butoane da / nu cu unele reacție la „da“ și „nu“ (!). Te rog spune-mi cum să-l pună în aplicare în Delphi.
Sper că pentru ajutor. Mulțumesc.
1. Privind toate ferestrele
2. minimizarea acestora
3. Se pune un contor de timp la 4 secunde.
4. după setul unic. Butonul de afișare temporizator da-nu
5. Nu uitați să se întoarcă toate înapoi, și apoi ozvereyut nick;)
Sau ceva ce nu înțeleg.
;-)
Și totuși? Cum va arăta codul. -)
Vă rugăm să ajute.
2. Fiecare fereastră pentru a trimite un mesaj PostMessage (mâner, WM_SYSCOMMAND, SC_MINIMIZE, 0);
4. dacă MessageDlg ( "", mtcofimation, [mbyes, mbno], 0) = mryes apoi
.
în cazul în care ferestrele, apoi prin forme brute Screen pliere.
și dacă totul aici este un exemplu de.
Cum de a minimiza toate ferestrele de sistem. (Așa cum a minimiza toate ferestrele cu excepția ferestrei de sistem)
Funcția EnumMiniProc (Wd: hWnd; Param: LongInt): Boolean; stdcall; // Asigurați-vă că pentru a stdcall.
începe
Dacă Wd<>Form1.Handle atunci // daca nu este programul nostru
Dacă IsWindowVisible (WD), atunci // dacă fereastra este vizibilă
În cazul în care nu IsIconic (WD), atunci // dacă fereastra nu este redusă la minimum
Dacă isWindow (WD), apoi // și este o - o fereastră.
ShowWindow (WD, SW_MINIMIZE); // ne transforma.
EnumProc: = TRUE; // continua prin toate ferestrele de sistem.
se încheie;
Procedura TForm1.Button1Click (Sender TObject.); // să încheiem la simpla apăsare a unui buton
începe
EnumWindows (@EnumMiniProc, 0); // Indeplinim pliante ferestre.
se încheie;
Pentru a minimiza fereastra de asemenea, ar șir destul de curat Dacă Wd<>Form1.Handle apoi în EnumMiniProc
Desigur, puteți pune încă o mulțime de condiții, care va minimiza fereastra, dar este o chestiune de sarcină specială.
Procedura TForm1.Button1Click (Expeditor: TObject);
VAR
WND. hWnd;
buff: ARRAY [0..127] Char;
începe
WND: = GetWindow (mâner, gw_HWndFirst);
ÎN TIMP CE eoliane <> 0 DO
BEGIN
IF (eoliane <> Application.Handle) ȘI
(IsWindowVisible (eoliane)) ATUNCI
BEGIN
GetWindowText (eoliane, piele de bivol, sizeof (piele de bivol));
ShowWindow (eoliane, SW_SHOWMINIMIZED);
END;
WND: = GetWindow (wnd, gw_hWndNext);
END;
Timer1.Enabled: = Adevărat;
se încheie;
Ei bine, atunci cred că nu este dificil%)
GetWindowText (eoliane, piele de bivol, sizeof (piele de bivol));
Este este nevoie de această linie?
Procedura MinimizeAll;
începe
keybd_event (VK_LWIN, MapVirtualKey (VK_LWIN, 0), 0, 0);
keybd_event (Ord ( "M"), MapVirtualKey (Ord ( "M"), 0), 0, 0);
keybd_event (Ord ( "M"), MapVirtualKey (Ord ( "M"), 0), KEYEVENTF_KEYUP, 0);
keybd_event (VK_LWIN, MapVirtualKey (VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
se încheie;
Acesta va rula toate ferestrele.
Sunt de acord cu Kotka
linii
buff: ARRAY [0..127] Char;
GetWindowText (eoliane, piele de bivol, sizeof (piele de bivol));
nu au nevoie
și ca o consecință, în codul de două mai Begin ar trebui eliminate
> Dacă isWindow (WD), apoi // și este o - o fereastră.
Și ce face liste EnumWindows și neokna prea? Aceasta este o veste.