Cum se face aplicația activă!

Cum se face aplicația activă? astfel încât fereastra sa este pe partea de sus a tuturor celorlalte, dacă o rulați așa:

La naiba încercat în multe moduri:

PostMessage (Mâner, WM_ACTIVATE, 0, 0);






TrimitereMessage (Mâner, WM_ACTIVATE, WA_CLICKACTIVE, 0);
BringWindowToTop (Mâner);

aici este un alt mesaj WM_ACTIVATEAPP în parametrul său este inclus hThread poate folosi ca?

Ei bine, sau cum să implementați această opțiune?
Programul temporizatorului trebuie să devină activ. astfel încât fereastra programului să fie pe partea de sus a tuturor ferestrelor și să se concentreze.

Aici am găsit o astfel de opțiune

funcționează - dar nu se potrivește cu faptul că fereastra inițial se îndoaie.

Există la cine încă vreo versiune.

> Cum se face aplicația activă?
dacă GetActiveWindow<>unele HWND apoi SetActiveWindow (unele HWND);

2 GanibalLector # xA0; [4]
Rău, îmi pare rău

În, astfel:

var QQ: HWND;
începe
QQ: = findwindow ("SciCalc", nul);
dacă GetForegroundWindow<>QQ apoi SetForegroundWindow (QQ);
se încheie;

Iată o listă de funcții și mesaje pe care le-am aplicat, care nu au ajutat-o.
Cel mai bine, titlul ferestrei clipea și asta este.

si.wShowWindow: = sw_show;
PostMessage (Mâner, WM_SYSCOMMAND, SC_restore, 0);
BringWindowToTop (Mâner);
si.dwFlags: = STARTF_RUNFULLSCREEN;
si.wShowWindow: = 4;
ARC30.Enabled: = true;
FlashWindow (mâner, adevărat);
Showwindow (Mâner, sw_show);
SetWindowPos (mâner, HWND_BOTTOM, 1,1,200,200, SWP_SHOWWINDOW);






PostMessage (Mâner, WM_ACTIVATE, 0, 0);
ShowWindow (Mâner, SW_RESTORE);
TrimitereMessage (Mâner, WM_SYSCOMMAND, SC_MINIMIZE, 0);
TrimitereMessage (Mâner, WM_ACTIVATE, WA_CLICKACTIVE, 0);
BringWindowToTop (Mâner);
SetForegroundWindow (.Handle);
SendMessage (mâner, WM_LButtonDown, 1,1);
SendMessage (mâner, WM_LButtonUP, 1,1);
TrimitereMessage (Mâner, WM_ACTIVATEAPP, 0, 0);
SetWindowPos (Mâner, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE);

Doar aceasta funcționează:
Application.Minimize;
Application.Restore;
Application.BringToFront;

Nu există nicio cale pentru Nijel.

Doar asta funcționează
Nu cred.
Ați încercat [6].

acest lucru vă va ajuta, doar

# xA0; # xA0; dacă nu rezultatul atunci
# xA0; # xA0; începe
# xA0; # xA0; # xA0; // Cod de Daniel P. Stasinski
# xA0; # xA0; # xA0; SystemParametersInfo (SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
# xA0; # xA0; # xA0; SystemParametersInfo (SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject (0), SPIF_SENDCHANGE);
# xA0; # xA0; # xA0; BringWindowToTop (hwnd); // IE 5.5 legate de hack
# xA0; # xA0; # xA0; Afișați fereastra frontală (hWnd);
# xA0; # xA0; # xA0; SystemParametersInfo (SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject (timeout), SPIF_SENDCHANGE);
# xA0; # xA0; se încheie;
# xA0; capăt
# xA0; altfel
# xA0; începe
# xA0; # xA0; BringWindowToTop (hwnd); // IE 5.5 legate de hack
# xA0; # xA0; SetForwardWindow (hwnd);
# xA0; se încheie;

# xA0; Rezultat: = (GetForegroundWindow = hwnd);
se încheie;
se încheie;
// -----------------------------------------
procedura TForm1.Timer1Timer (expeditor: TObject);
începe
# xA0; ForceForegroundWindow (Application.Handle);
se încheie;

Lucrează în sfârșit.
Vă mulțumim foarte mult pentru DDA.

Esența programului este următoarea:
Mi-am rula programul, se verifica daca este prezenta in memorie, daca nu, atunci ramane sa lucreze, daca exista, atunci transmite mesajul catre primul program care ar trebui sa pluteasca si sa devina activ, iar al doilea exemplar isi termina lucrarea.

Încă o dată, MULȚUMI MULT.







Articole similare

Trimiteți-le prietenilor: