AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Screenshot generieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshot generieren?

Ein Thema von Random Company · begonnen am 25. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Random Company

Registriert seit: 25. Nov 2007
Ort: Lingen
1 Beiträge
 
#1

Screenshot generieren?

  Alt 25. Nov 2007, 18:11
Hi,

gibts ne Funktion oder so, womit ich n Screenshot vom aktuellen Bildschirm erstellen kann?
Hab per Suchfunktion "Screenshot" nichts passendes gefunden...
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#2

Re: Screenshot generieren?

  Alt 25. Nov 2007, 18:16
ScreenshotScreenshot:

http://www.delphipraxis.net/internal...ect.php?t=8024
http://www.delphipraxis.net/internal...ect.php?t=2905
http://www.delphipraxis.net/internal_redirect.php?t=151

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#3

Re: Screenshot generieren?

  Alt 25. Nov 2007, 18:20
Moin, Moin.
Hier ein CodeSchnipsel, habe ich noch nie benutzt und kann daher nicht sagen ob das funktioniert. Die Quelle kann ich auch nicht mehr benennen - ist jeden falls nicht von mir!

Die Prozedur speichert im übergebenen TBitmap ein Abbild des aktuellen Windows-Desktops. Wenn man einen Screenshot eines bestimmten Fensters oder Controls haben möchte, besorgt man sich das Handle dieses Fensters und ermittelt dann den Bildauschnitt mit der API-Funktion GetWindowRect(..). Diesen Ausschnitt kopiert man dann einfach aus dem Desktop-Screenshot.
Delphi-Quellcode:
procedure ScreenCapture(Bmp:TBitmap);
var DeskWnd : HWnd;
    DeskDC : HDC;
    DeskCv : TCanvas;
    R : TRect;
    W,H : Integer;
begin
  if Bmp=nil then exit;

  DeskWnd:=GetDesktopWindow;
  DeskDC :=GetWindowDC(DeskWnd);
  DeskCv :=TCanvas.Create;
  DeskCv.Handle:=DeskDC;
  W:=Screen.Width;
  H:=Screen.Height;
  R:=Bounds(0,0,W,H);

  try
    Bmp.HandleType :=bmDIB;
    Bmp.PixelFormat :=pf24Bit;
    Bmp.Width :=W;
    Bmp.Height :=H;
    Bmp.Canvas.CopyMode:=cmSrcCopy;
    Bmp.Canvas.CopyRect(R,DeskCv,R);
 
  finally
    DeskCv.Free;
    ReleaseDC(DeskWnd,DeskDC);
    end;
end;
Gruß Ralph

PS : Gib bitte Info, wenn's damit funktioniert!
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

Re: Screenshot generieren?

  Alt 25. Nov 2007, 19:36
Also ich benutze auch eine Funktion um einen Screenshot zu machen...

Zitat:
Delphi-Quellcode:
procedure MakeScreenShot(const ATarget: TBitmap);
var
  DesktopDC: HDC;
begin
  DesktopDC := CreateDC('DISPLAY', nil, nil, nil);
  try
    ATarget.PixelFormat := pfDevice;
    ATarget.Width := Screen.Width;
    ATarget.Height := Screen.Height;
  
    BitBlt(ATarget.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DesktopDC, 0, 0, SRCCOPY);
  finally
    DeleteDC(DesktopDC);
  end;
end;
Der schnipsel ist ein Tipp von dsdt
Aufgerufen wird diese mit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MakeScreenShot(Image1.Picture.Bitmap);
  Image1.Repaint;
end;
Ansonsten einfach mal googeln
Bei Google suchenScreenshot Windows Delphi

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Screenshot generieren?

  Alt 25. Nov 2007, 19:46
und beide Schnipsel würde ich nicht verwenden weil gar nicht geprüft wird ob die Funktionen erfolgreich aufgerufen werden konnten
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Screenshot generieren?

  Alt 26. Nov 2007, 15:42
das kann dann der Nutzer dieser Schnipsel selbst hinzufügen, oder lassen. Mein Schnipsel funktioniert .

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz