procedure TForm1.FormCreate(Sender: TObject);
var
r: TRect;
begin
//SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);//取得工作区大小(不含任务拦)
//另一种
//ShowMessage('r.top='+ IntToStr(r.Top ) +
// ' r.botton='+IntToStr(r.Bottom ) +
// ' r.Left='+IntToStr(r.Left ) +
// ' r.Right='+IntToStr(r.Right ) ) ;
//ShowMessage(IntToStr(Screen.Height ));
//------------
GetWindowRect(FindWindow('Shell_TrayWnd', nil), r);//取得任务拦大小
Form1.Top := (Screen.Height - (r.Bottom - r.Top))-Form1.Height;
Form1.Left := r.Right - Form1.Width ; //(Screen.Width - (r. - r.Top))-Form1.Height;
//------------
end;
//------------------------------------------------------------------
function TForm1.GetTaskBar:integer;
var
abd:TAppBarData;
begin
abd.cbSize:=sizeof(abd);
SHAppBarMessage(ABM_GETTASKBARPOS,abd);
Result:=abd.rc.Bottom-abd.rc.Top;
end;
任务栏的高度宽度=Screen.Width,Height-客户区的高度,宽度。
//------------------------------------------------------------------
var
r: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);//取得工作区大小(不含任务拦)
showmessage(inttostr(screen.height - (r.Bottom - r.Top)));
end;
移到右侧就用 screen.width - (r.Right - r.Left)
//------------------------------------------------------------------
var r: TRect;
begin
GetWindowRect(FindWindow('Shell_TrayWnd', nil), r);
ShowMessage(IntToStr(r.Bottom - r.Top)); // 高度
end;