|
|
|
|
Как
отключить показ кнопки программы в TaskBar и по Alt-Tab и в
Ctrl-Alt-Del
Внеся изменения (выделенные цветом) в свой проект вы получите
приложение, которое не видно в TaskBar и на него нельзя переключиться по
Alt-Tab
program Project1; uses Forms, Windows, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} var ExtendedStyle : integer; begin Application.Initialize; ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE); SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW}); Application.CreateForm(TForm1, Form1); Application.Run; end.
Если
включить синий коментарий, то получите очень интересное приложение. Оно не
видно в TaskBar и на него нельзя переключиться по Alt-Tab, но когда
приложение минимизируется оно остается на рабочем столе в виде свернутого
заголовка (прямо как в старом добром Windows 3.11)
Только сpазу
пpедупpеждаю пpо гpабли, на котоpые я наступал: Будь готов к тому, что
если пpи попытке закpытия пpиложения в OnCloseQuery или OnClose выводится
вопpос о подтвеpждении, то могут быть пpоблемы с автоматическим завеpшением
пpогpаммы пpи shutdown - под Win95 пpосто зависает, под WinNT не
завеpшается. Очевидно, что сообщение выводится, но его не видно (пpичем
SW_RESTORE не сpабатывает). Решение - ловить WM_QueryEndSession и после
всяких завеpшающих действий и вызова 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;
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|
|