Delphi довідка

Як відключити показ кнопки програми в TaskBar і по Alt-Tab і в Ctrl-Alt-Del

Внісши зміни (виділені кольором) в свій проект ви отримаєте програму, що не видно в TaskBar і на нього не можна переключитися з Alt-Tab

program Project1;
uses
Forms,
Windows,
Unit1 in 'Unit1.pas';

var
ExtendedStyle. integer;
begin
Application.Initialize;
ExtendedStyle: = GetWindowLong (application.Handle, GWL_EXSTYLE);
SetWindowLong (Application.Handle, GWL_EXSTYLE,
ExtendedStyle or WS_EX_TOOLWINDOW);
Application.CreateForm (TForm1, Form1);
Application.Run;
end.
Якщо включити синій коментар, то отримаєте дуже цікавий додаток. Воно не видно в TaskBar і на нього не можна переключитися з Alt-Tab, але коли додаток мінімізується воно залишається на робочому столі у вигляді згорнутого заголовка (прямо як в старому доброму Windows 3.11)
Тільки відразу пpедупpеждает пpо гpаблі, на якому я наступав:
Будь готовий до того, що якщо пpи спробі закритих пpиложения в OnCloseQuery або OnClose виводиться вопpос про подтвеpждения, то можуть бути Пpоблема з автоматичним завеpшения програмі пpи shutdown - під Win95 просто зависає, під WinNT НЕ термінальний. Очевидно, що повідомлення виводиться, але його не видно (пpичем SW_RESTORE НЕ сpабативает). Рішення - ловити WM_QueryEndSession і після всяких термінальний дій і виклику CallTerminateProcs видавати Halt.

А ось як відрубати показ файлу в Ctrl-Alt-Del

function RegisterServiceProcess (dwProcessID, dwType: Integer): Integer; stdcall;
external 'KERNEL32.DLL';
implementation
procedure TForm1.Button1Click (Sender: TObject);
begin // Hide
if not (csDesigning in ComponentState) then
RegisterServiceProcess (GetCurrentProcessID, 1);
end;
procedure TForm1.Button2Click (Sender: TObject);
begin // Show
if not (csDesigning in ComponentState) then
RegisterServiceProcess (GetCurrentProcessID, 0);
end;

Схожі статті