找设置任务栏高度时发现了这些代码,保留了下来
procedure FullScreenArea;
var
rcWork: TRect;
begin
rcWork.Top:=0;
rcWork.Left:=0;
rcWork.Bottom:=GetSystemMetrics(SM_CYSCREEN);
rcWork.Right:=GetSystemMetrics(SM_CXSCREEN);
SystemParametersInfo (SPI_SETWORKAREA, 0, @rcWork, SPIF_SENDCHANGE);
end;
procedure StandardArea; //除了任务栏
var
hApp: HWND;
rcApp, rcWork: TRect;
begin
rcWork.Top:=0;
rcWork.Left:=0;
rcWork.Bottom:= GetSystemMetrics(SM_CYSCREEN);
rcWork.Right:= GetSystemMetrics(SM_CXSCREEN);
hApp := FindWindow('Shell_TrayWnd', '');
if hApp <> 0 then begin
{ get the size of the taskbar }
GetWindowRect(hApp, rcApp);
{ cut the workarea to place the taskbar }
if rcApp.Right<rcWork.Right then
rcWork.Left:=rcApp.Right; { bar on left edge }
if rcApp.Bottom<rcWork.Bottom then
rcWork.Top:=rcApp.Bottom; { bar on top edge }
if rcApp.Left>0 then
rcWork.Right:=rcApp.Left; { bar on right edge }
if rcApp.Top>0 then
rcWork.Bottom:=rcApp.Top; { bar on bottom edge }
end;
{ set workarea }
SystemParametersInfo (SPI_SETWORKAREA, 0, @rcWork, SPIF_SENDCHANGE );
end; { StandardArea }