<pre class="brush: delphi;" title="タスクバーのサイズ取得">
implementation

uses
  ShellApi;

{&#36;R *.DFM}

procedure TForm1.btnGetTaskBarSizeClick(Sender: TObject);
var
  AppBarData: TAPPBARDATA;
  rc: TRect;
begin
  // タスクバーの大きさ取得 **********************
  AppBarData.cbSize := sizeof(TAPPBARDATA);
  SHAppBarMessage(ABM_GETTASKBARPOS, AppBarData);
  // 取得した情報をMemoコンポに表示
  with Memo1, AppBarData do
  begin
    Clear;
    Lines.Add('タスクバーの大きさ');
    Lines.Add(Format('Left   : %4d', [rc.Left]));
    Lines.Add(Format('Right  : %4d', [rc.Right]));
    Lines.Add(Format('Top    : %4d', [rc.Top]));
    Lines.Add(Format('Bottom : %4d', [rc.Bottom]));
  end;

  // タスクバー以外のスクリーンの大きさ取得 *****
  SystemParametersInfo(SPI_GETWORKAREA, 0, @rc, 0);
  // 取得した情報をMemoコンポに表示
  with Memo1 do
  begin
    Lines.Add('タスクバー以外の部分の大きさ');
    Lines.Add(Format('Left   : %4d', [rc.Left]));
    Lines.Add(Format('Right  : %4d', [rc.Right]));
    Lines.Add(Format('Top    : %4d', [rc.Top]));
    Lines.Add(Format('Bottom : %4d', [rc.Bottom]));
  end;
end;
end.
</pre>