Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Tcanvas   Найти похожие ветки 

 
Dhg   (2004-05-15 13:57) [0]

Здраствуйте.
Как можно снять снимок экрана, но так, чтобы система не зависала при этом.


 
Style ©   (2004-05-15 13:59) [1]

>>Как можно снять снимок экрана, но так, чтобы система не >>зависала при этом.

А разве система зависает??
Можно на такой код посмотреть :)


 
Dhg   (2004-05-15 14:05) [2]

two Style

Вот :

unit Main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Image1: TImage;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var DeskTop : TCanvas ;
   B: TBitmap;
begin
 DeskTop := TCanvas.Create ;
 B:=TBitmap.Create;
 B.Width:=800;
 B.Height:=600;

 try
  with DeskTop do
    Handle := GetWindowDC (GetDesktopWindow) ;

  with B.Canvas do
  begin
    CopyRect (Rect (0, 0, 800, 600),
    DeskTop,
    Rect (0, 0, 800, 600))
  end;

 finally
   Image1.Picture.Bitmap :=B;
   DeskTop.Free;
   B.Free;
 end
end;

end.


 
Mim1 ©   (2004-05-15 14:21) [3]

Попробуй заменить
  Handle := GetWindowDC (GetDesktopWindow) ;
на
  Handle := GetDC (0) ;
 

Если не поможет вынеси этот код в поток с низким приоритетом.


 
Dhg   (2004-05-15 14:28) [4]

two Mim1
что используя getdc(0), что desktopwindow, тот же результат :).

Да, актуальная проблема :-)


 
Mim1 ©   (2004-05-15 14:30) [5]

Используйте не создавайте tcanvas вместо copyrect используйте BitBlt( приямо на хендл битмапа и экрана.
Не забывайте про  ReleaseDC.



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
9-1075144796
Antichrist
2004-01-26 22:19
2004.05.30
освещение объектов в <b>двухмерной</b> графике


4-1081879825
AndersoNRules
2004-04-13 22:10
2004.05.30
Trouble s WM_ENDSESSION. ne vizivaezza prozzedura


6-1081603302
Александр из Минска
2004-04-10 17:21
2004.05.30
Сколько байт осталось переслать?


14-1084260958
pasha_golub
2004-05-11 11:35
2004.05.30
Однако.


3-1083622643
dim-
2004-05-04 02:17
2004.05.30
сохранить в блоб разную информацию