Определить размера рабочей области Desktop'а

Иногда важно знать, какую часть экрана можно занимать, не перекрывая тем самым такие окна, как TaskBar. Эта программа разворачивает окно на всю рабочую область Desktop'а.

procedure TForm1.Button1Click(Sender: TObject);

var

 r : TRect;

begin

 SystemParametersInfo(SPI_GETWORKAREA, 0, Addr(r), 0);

 Form1.Left := r.Left;

 Form1. := r.;

 Form1.Width := r.Right - r.Left;

 Form1.Height := r.Bottom - r.;

end;

Автор советов: Даниил Карапетян
e-mail: delphi4all@narod.ru
Автор справки: Алексей Денисов
e-mail: aleksey@sch103.krasnoyarsk.su

Воспользуйтесь функцией SystemParametersInfo(), переслав ей в качестве параметров - SPI_GETWORKAREA и адрес структуры типа TRect, куда будут передан полученный результат:

procedure TForm1.Button1Click(Sender: TObject);
var
 r: TRect;
begin
 SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
 Memo1.Lines.Add(IntToStr(r.));
 Memo1.Lines.Add(IntToStr(r.Left));
 Memo1.Lines.Add(IntToStr(r.Bottom));
 Memo1.Lines.Add(IntToStr(r.Right));
end;
http://delphiworld.narod.ru/ DelphiWorld 6.0

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение координат области Рабочего стола, не скрытой Панелью задач
Зависимости: Windows
Автор: Dimka Maslov, <a href="mailto:mainbox@endimus.ru">mainbox@endimus.ru</a>, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 4 ноября 2002 г.
***************************************************** }

function GetDesktopRect: TRect;
var
 RgnDesktop, RgnTrayWnd: HRGN;
 function CreateWindowRgn(Handle: HWND): HRGN;
 var
  R: TRect;
 begin
  GetWindowRect(Handle, R);
  with R do
  Result := CreateRectRgn(Left, , Right, Bottom);
 end;
begin
 RgnDesktop := CreateWindowRgn(GetDesktopWindow);
 try
  RgnTrayWnd := CreateWindowRgn(FindWindow('Shell_TrayWnd', ''));
  try
  CombineRgn(RgnDesktop, RgnDesktop, RgnTrayWnd, RGN_DIFF);
  GetRgnBox(RgnDesktop, Result);
  finally
  DeleteObject(RgnTrayWnd);
  end;
 finally
  DeleteObject(RgnDesktop);
 end;
end;

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...