Программа копирования экрана на Image1
procedure GetBitmapFromDesctop(rm:Tcanvas); var DeskTopCanvas:Tcanvas; // Canva экрана DeskTopDC:Thandle; // Экран DeskTopRect: TRect; // Размер области begin DeskTopDC := GetWindowDC(GetDeskTopWindow); DeskTopCanvas := TCanvas.Create; DeskTopCanvas.Handle := DeskTopDC; // DeskTopCanvas.Rectangle(0,0,50,50); DeskTopRect:=rect(0,0,screen.width,screen.Height); //rm:=Tbitmap.Create; // rm.Width:=DeskTopRect.Right; // rm.Height:=DeskTopRect.Bottom; rm.CopyRect(rm.ClipRect,DeskTopCanvas,DeskTopRect); DeskTopCanvas.Free;
end;
Пример procedure TForm1.Button1Click(Sender: TObject); begin GetBitmapFromDesctop(form1.Image1.Canvas);
end;
рисуем прямоугольник на рабочем столе за ярлыками (Windows 7 / проверенно работает)
var hwndProgman,hwndDefView,hwndSysListView32: HWND; hdcSysListView32: HDC; xRect: TRect; begin hwndProgman:=FindWindow('Progman',nil); hwndDefView:=FindWindowEx(hwndProgman,0,'SHELLDLL_DefView',nil); hwndSysListView32:=FindWindowEx(hwndDefView,0,'SysListView32',nil); hdcSysListView32:=GetDC(hwndSysListView32); xRect:=Rect(Screen.Width-200,Screen.Height-200,Screen.Width-100,Screen.Height-100); FillRect(hdcSysListView32,xRect,COLOR_WINDOWTEXT); ReleaseDC(hwndSysListView32,hdcSysListView32); end;
Как рисовать на самом рабочем столе за иконками,
Как получить доступ к картинке рабочего стола и рисовать на ней
Как рисовать на рабочем столе
|