Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Screen Capture  (Okunma sayısı 3302 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Mikdad

  • Delphi 4 Level 1
  • *
  • İleti: 150
  • Rep: +2/-2
  • Cinsiyet: Bay
    • http://www.mikdad.net
Screen Capture
« : 08 Kasım 2005 19:32:33 »
Bir tane image componenti eklemek zorundasınız.
Kod:  (Unknown Language)
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3. DCDesk: HDC;
  4.  
  5. begin
  6. DCDesk:=GetWindowDC(GetDesktopWindow);
  7. BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
  8. ReleaseDC(GetDesktopWindow, DCDesk);
  9. end;
« Son Düzenleme: 04 Ekim 2008 09:42:43 by Kocaturk »
Hiç KiMSe VaZGeÇiLMeZ DeĞiLDiR
WwW.Minikhost.Net    Host Dünyasında Yeni Bir Soluk
WwW.Mikdad.Net        İslami İçerikli Portalınız
WwW.Pckahvesi.com   Netteki Yeni Adresiniz

Çevrimdışı ss80

  • Delphi 1 Level 3
  • ***
  • İleti: 20
  • Rep: +0/-0
Ynt: Screen Capture
« Yanıtla #1 : 03 Ekim 2008 12:46:30 »
 1024x768 alinmis bir fotoyu nasil 800x600 yapriz?*

Çevrimdışı By_DesTRoyeR

  • Delphi 1 Level 1
  • *
  • İleti: 3
  • Rep: +0/-0
Ynt: Screen Capture
« Yanıtla #2 : 15 Şubat 2009 23:08:39 »
image componenti nerde?

Çevrimdışı Subhan

  • Delphi XE2 Level 5
  • *****
  • İleti: 818
  • Rep: +1/-0
  • Cinsiyet: Bay
Ynt: Screen Capture
« Yanıtla #3 : 18 Şubat 2009 19:07:23 »
Selam arkadaşlar 2-3 ay önce böyle bir proje yapmıştım. bazen resim gerekli oluyor.
yapdığım program .bmp ve .jpg  fromatında resim çeke biliyor (tüm ekran)

Ekden indire bilirsiniz
En Güzel Azeri Programlama Sitesi.

Proqramlasdirma.Com

Çevrimdışı By_DesTRoyeR

  • Delphi 1 Level 1
  • *
  • İleti: 3
  • Rep: +0/-0
Ynt: Screen Capture
« Yanıtla #4 : 20 Şubat 2009 19:38:00 »
Teşekkürler güzel olmuş. Nasıl değiştirdin o görünü mü?

Çevrimdışı Subhan

  • Delphi XE2 Level 5
  • *****
  • İleti: 818
  • Rep: +1/-0
  • Cinsiyet: Bay
Ynt: Screen Capture
« Yanıtla #5 : 21 Şubat 2009 15:34:11 »
Görünüm derken neyi kast etdin.
En Güzel Azeri Programlama Sitesi.

Proqramlasdirma.Com

Çevrimdışı Caylaq

  • Delphi 1 Level 1
  • *
  • İleti: 5
  • Rep: +0/-0
Ynt: Screen Capture
« Yanıtla #6 : 09 Mart 2009 21:21:07 »
Ekran görüntüsünü değilde sadece Fomun görüntüsünü çekmek istersek bunu nasıl yaparız ?

Çevrimdışı Subhan

  • Delphi XE2 Level 5
  • *****
  • İleti: 818
  • Rep: +1/-0
  • Cinsiyet: Bay
Ynt: Screen Capture
« Yanıtla #7 : 10 Mart 2009 16:28:48 »
Ekran görüntüsünü değilde sadece Fomun görüntüsünü çekmek istersek bunu nasıl yaparız ?

Bu kodla hem ekranı hem de istenilen nesnenin (Form dahil) resmini çekiyor. Bu kodları DelphiTürk Kod Bank-da bulunuyor.

Kod:  (Unknown Language)
  1. function GetDcAsBitmap(DC: HDC; Bitmap: TBitmap; W, H: Cardinal): Boolean;
  2. var
  3.   hdcCompatible: HDC;
  4.   hbmScreen: HBitmap;
  5. begin
  6.   Result := False;
  7.   if DC = 0 then Exit;
  8.   hdcCompatible := CreateCompatibleDC(DC);
  9.   hbmScreen := CreateCompatibleBitmap(DC, W, H);
  10.   if (hbmScreen = 0) then Exit;
  11.   if (SelectObject(hdcCompatible, hbmScreen)=0) then Exit;
  12.   if not(BitBlt(hdcCompatible, 0,0, W, H, DC, 0,0, SRCCOPY)) then
  13.     Exit;
  14.   Bitmap.Handle := HbmScreen;
  15.   Bitmap.Dormant;
  16.   Result := True;
  17. end;
  18.  
  19. function GetScreenAsBitmap(Bitmap: TBitmap): Boolean;
  20. var ScreenDC: HDC;
  21. begin
  22.   ScreenDC := CreateDC('DISPLAY', NIL, NIL, NIL);
  23.   Result := GetDCAsBitmap(ScreenDC, Bitmap,
  24.                           GetDeviceCaps(ScreenDC, HORZRES),
  25.                           GetDeviceCaps(ScreenDC, VERTRES)
  26.             );
  27. end;
  28.  
  29. function GetWindowAsBitmap(const WindowName: string;
  30.         Bitmap: TBitmap): Boolean;
  31. var Wnd: HWnd;
  32.     Rect: TRect;
  33. begin
  34.    Wnd := FindWindow(nil, PChar(WindowName));
  35.    GetWindowRect(Wnd, Rect);
  36.    Result := GetDCAsBitmap(GetWindowDC(Wnd), Bitmap,
  37.              Rect.Right - Rect.Left, Rect.Bottom - Rect.Top);
  38. end;
  39.  
  40. function GetWindowAsBitmap(Wnd: HWnd; Bitmap: TBitmap): Boolean;
  41. var
  42.   Rect: TRect;
  43. begin
  44.   GetWindowRect(Wnd, Rect);
  45.   Result := GetDCAsBitmap(GetWindowDC(Wnd), Bitmap,
  46.             Rect.Right - Rect.Left, Rect.Bottom - Rect.Top);
  47. end;
  48.  
  49. // Kullanimi:
  50. {Button1 yüzeyini resim olarak al}
  51. GetWindowAsBitmap(Button1.Handle, Image1.Picture.Bitmap);
  52. {Tüm ekrani resim olarak al}
  53. GetScreenAsBitmap(Image1.Picture.Bitmap);
« Son Düzenleme: 21 Mayıs 2009 23:21:49 by Kocaturk »
En Güzel Azeri Programlama Sitesi.

Proqramlasdirma.Com

Çevrimdışı kabacaly

  • Delphi 1 Level 1
  • *
  • İleti: 1
  • Rep: +0/-0
Ynt: Screen Capture
« Yanıtla #8 : 11 Mayıs 2009 16:52:15 »
Selam arkadaşlar 2-3 ay önce böyle bir proje yapmıştım. bazen resim gerekli oluyor.
yapdığım program .bmp ve .jpg  fromatında resim çeke biliyor (tüm ekran)

Ekden indire bilirsiniz
bana da aktif pencerenin resmini almak lasım olmuştu. internetten arama yaptıgımda bir kod örneği bulmuştum. sora onu birz geliştirip jpg olarak kaydetme falan ekledim. şu an exe yi çalıştırdığınızda herhangi bir form gelmiyor. sadece saveDialog penceresi geliyor ve sadece kaydedeceğiniz yeri ve ismini yazıyorsunuz.
Kod:  (Unknown Language)
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ExtCtrls, Jpeg, SHFolder;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Image1: TImage;
  12.     SaveDialog1: TSaveDialog;
  13.     procedure FormCreate(Sender: TObject);
  14.   private
  15.     { Private declarations }
  16.   public
  17.     { Public declarations }
  18.   end;
  19.  
  20. var
  21.   Form1: TForm1;
  22.   b: TBitmap;
  23.  
  24. implementation
  25.  
  26. {$R *.dfm}
  27.  
  28. function bul:string ;
  29. const
  30.   SHGFP_TYPE_CURRENT = 0;
  31. var
  32.   path: array[0..MAXCHAR] of char;
  33. begin
  34.   SHGetFolderPath(0,SHGFP_TYPE_CURRENT,0,SHGFP_TYPE_CURRENT,@path[0]);
  35.   Result:= path;
  36. end;
  37.  
  38. procedure convert(instream:TStream);
  39. var
  40.   jpeg:TJPEGImage;
  41. begin
  42.   jpeg := TJPEGImage.Create;
  43.   try
  44.     jpeg.Assign(b);
  45.   finally
  46.  
  47.   end;
  48. end;
  49.  
  50. procedure ScreenShot(activeWindow: bool; destBitmap : TBitmap) ;
  51. var
  52.   w,h : integer;
  53.   DC : HDC;
  54.   hWin : Cardinal;
  55.   r : TRect;
  56. begin
  57.   if activeWindow then
  58.   begin
  59.     hWin := GetForegroundWindow;
  60.     dc := GetWindowDC(hWin);
  61.     GetWindowRect(hWin,r);
  62.     w := r.Right - r.Left;
  63.     h := r.Bottom - r.Top;
  64.   end
  65.   else
  66.   begin
  67.     hWin := GetDesktopWindow;
  68.     dc := GetDC(hWin);
  69.     w := GetDeviceCaps (DC, HORZRES);
  70.     h := GetDeviceCaps (DC, VERTRES);
  71.   end;
  72.  
  73.   try
  74.    destBitmap.Width := w;
  75.    destBitmap.Height := h;
  76.    BitBlt(destBitmap.Canvas.Handle,
  77.           0,
  78.           0,
  79.           destBitmap.Width,
  80.           destBitmap.Height,
  81.           DC,
  82.           0,
  83.           0,
  84.           SRCCOPY) ;
  85.   finally
  86.    ReleaseDC(hWin, DC) ;
  87.   end;
  88. end;
  89.  
  90. procedure TakeShot(activeWindow : boolean);
  91. begin
  92.   b := TBitmap.Create;
  93.   try
  94.     ScreenShot(activeWindow, b);
  95.     Form1.Image1.Picture.Bitmap.Assign(b);
  96.   finally
  97. //    b.FreeImage;
  98. //    FreeAndNil(b);
  99.   end;
  100. end;
  101.  
  102. procedure TForm1.FormCreate(Sender: TObject);
  103. var
  104.   giris : TStream;
  105. begin
  106.   Sleep(3000);
  107.   try
  108.     TakeShot(true);
  109.     SaveDialog1.Title:= 'Resim Kaydet';
  110.     SaveDialog1.DefaultExt:= 'jpeg';
  111.     SaveDialog1.Filter:= 'JPEG (*.jpeg)|*.jpeg';
  112.     SaveDialog1.InitialDir:= 'C:\Documents and Settings\' + bul + '\Desktop';
  113.     if SaveDialog1.Execute then
  114.       begin
  115.         b.SaveToFile('C:\Windows\Temp\test.bmp');
  116.         giris:= TFileStream.Create('C:\Windows\Temp\test.bmp',fmOpenRead);
  117.         convert(giris);
  118.         b.SaveToFile(SaveDialog1.FileName);
  119.       end;
  120.   finally
  121. //    b.FreeImage;
  122. //    FreeAndNil(b);
  123.     if FileExists('C:\Windows\Temp\test.bmp') then
  124.       DeleteFile('C:\Windows\Temp\test.bmp');
  125.     Application.Terminate;
  126.   end;
  127. end;
  128.  
  129. end.
  130.  
« Son Düzenleme: 21 Mayıs 2009 23:21:06 by Kocaturk »