Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1084214136
PaRL
2004-05-10 22:35
2004.05.30
Самообразование


14-1083995978
MasterA
2004-05-08 09:59
2004.05.30
Mail


3-1084310157
Yagoda
2004-05-12 01:15
2004.05.30
Можно ли достучаться ... ???


1-1084609118
Delphir
2004-05-15 12:18
2004.05.30
LowerCase по русски


6-1081639590
freak
2004-04-11 03:26
2004.05.30
Как обработать события когда срабатывает setsockopt()




   Наверх