Delphi ajuta

Cum să dezactivați afișarea butonului programului în TaskBar și prin Alt-Tab și Ctrl-Alt-Del

Prin efectuarea de modificări (evidențiate prin culoare) la proiectul dvs., veți primi o aplicație care nu este vizibilă în TaskBar și nu poate fi schimbată la Alt-Tab







program Proiect1;
utilizări
Formulare,
ferestre,
Unitatea 1 în "Unit1.pas";

var
ExtendedStyle. întreg;
începe
Application.Initialize;
ExtendedStyle: = GetWindowLong (application.Handle, GWL_EXSTYLE);
SetWindowLong (Application.Handle, GWL_EXSTYLE,
ExtendedStyle sau WS_EX_TOOLWINDOW);
Application.CreateForm (TForm1, Form1);
Application.Run;
end.
Dacă includeți un comentariu albastru, veți primi o aplicație foarte interesantă. Nu este vizibilă în bara de activități, și este imposibil să porniți Alt-Tab, dar în cazul în care cererea este redusă la minimum, rămâne pe desktop sub forma unui antet pliat (la fel ca în vechiul bun pentru Windows 3.11)






Doar o dată avertizez împotriva mormintelor pe care am pășit:
Fii pregătit pentru faptul că, dacă încercați în timpul programelor de aplicație ÎNCHIDEREA sunt în OnCloseQuery sau OnClose afișează Problemelor o confirmare, poate fi PROBLEME automate zavepsheniem în timpul programelor va fi oprit automat - nu se află sub Win95 pposto atârnă sub WinNT zavepshaetsya. Evident, mesajul este afișat, dar nu este vizibil (cel puțin SW_RESTORE nu funcționează). Soluția de rezolvare - prinderea WM_QueryEndSession și după orice acțiuni zavepshayuschih și apel CallTerminateProcs problemă Halt.

Iată cum puteți întrerupe afișarea fișierelor în Ctrl-Alt-Del

funcția RegisterServiceProcess (dwProcessID, dwType: Integer): Integer; stdcall;
externe "KERNEL32.DLL";
punerea în aplicare
procedura TForm1.Button1Click (expeditor: TObject);
începeți / Ascundeți
dacă nu (csDesigning în ComponentState) atunci
ÎnregistrareServiceProcess (GetCurrentProcessID, 1);
se încheie;
procedura TForm1.Button2Click (expeditor: TObject);
începeți // Afișați
dacă nu (csDesigning în ComponentState) atunci
RegisterServiceProcess (GetCurrentProcessID, 0);
se încheie;







Articole similare

Trimiteți-le prietenilor: