Ještě lépe. Takto jsem to řešil v jedné aplikaci, která byla přes celou obrazovku a nesla na sobě obrázek (něco jako spořič s EXE příponou :)).
procedure TForm1.FormCreate(Sender: TObject);
var
HTaskbar : HWND;
OldVal : LongInt;
begin
try
HTaskBar:=FindWindow('Shell_TrayWnd',nil);
SystemParametersInfo (97, Word (True), @OldVal, 0) ;
EnableWindow(HTaskBar,False);
ShowWindow(HTaskbar,SW_HIDE);
finally
With Form1 do begin
BorderStyle :=bsNone;
FormStyle :=fsNormal;
Left :=0;
Top :=0;
Height :=Screen.Height;
Width :=Screen.Width;
end;
end
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
HTaskbar : HWND;
OldVal : LongInt;
begin
ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOW);
HTaskBar:=FindWindow('Shell_TrayWnd',nil);
SystemParametersInfo (97, Word (False), @OldVal, 0);
EnableWindow(HTaskBar,True);
ShowWindow(HTaskbar,SW_SHOW);
SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, 0, nil, 0)
end;
Uses:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, WinSkinData, ImgList, ComCtrls, ToolWin;