AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form screenshot

Ein Thema von taktaky · begonnen am 18. Mai 2008 · letzter Beitrag vom 19. Mai 2008
Antwort Antwort
taktaky
(Gast)

n/a Beiträge
 
#1

Form screenshot

  Alt 18. Mai 2008, 21:36
Hallo

wie kann man Form1-Screenshot erzeugen?
mit dem Code wird den gesamten Bildschirm kopiert

Bilder für Support zwar wichtig aber der User will gerne nur das Programm-Screen capture. Mehr nicht. Was auf seinem Bildschirm ist, darf man nicht sehen
Delphi-Quellcode:
 

uses JPeg, Graphics, Windows, Classes ...;

var
  B: TBitmap;
  I: TJpegImage;
  DC: hDC;
begin
  B := TBitmap.Create;
  try
    DC := GetDC(hWnd_Desktop);
    try
      B.Width := Screen.Width;
      B.Height := Screen.Height;
// Screenshot als Bitmap machen
      BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height, DC, 0, 0, SRCCOPY);
    finally
      ReleaseDC(DC, hWnd_Desktop);
    end;
// Bitmap nach JPEG und speichern
    I := TJpegImage.Create;
    try
      I.Assign(B);
      I.SaveToFile('Filename hier.jpeg');
    finally
      I.Free;
    end;
  finally
    B.Free;
  end;
end;
ich habe versucht mit :
B.Width := Form1.Width;
B.Height := Form2.Height;

Aber das Problem ist hier in Parameter :
      BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height, DC, 0, 0, SRCCOPY); Ich habe versucht so :
BitBlt(Result.Canvas.Handle, Form1.Left, Form1.Top, Result.Width, Result.Height, Desktop, (Form1.left+Form1.width), Form1.Top+Form1.Height, SRCCOPY);
  Mit Zitat antworten Zitat
1234588

Registriert seit: 14. Jan 2007
Ort: Stuttgart
164 Beiträge
 
#2

Re: Form screenshot

  Alt 18. Mai 2008, 21:48
Delphi-Quellcode:
DC := GetDC(hWnd_Desktop);
ReleaseDC(DC, hWnd_Desktop);
da solltest du das handle deinies fensters uebergeben
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Form screenshot

  Alt 18. Mai 2008, 22:41
Und hättest beim Posten auf den Button unter dem Titel geklickt, auf dem unsinnigerweise "Ähnliche Themen" steht, hättest Du auch das hier gefunden. Und sag keinem weiter, dass das Dein eigener Thread ist!
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Form screenshot

  Alt 18. Mai 2008, 23:12
Zitat von Die Muhkuh:
Und sag keinem weiter, dass das Dein eigener Thread ist!
So, jetzt kann ich zumindest mit einem Lächeln im Gesicht schlafen gehen... Gute Nacht!
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Pichel
Pichel

Registriert seit: 25. Feb 2005
Ort: Kassel
65 Beiträge
 
Delphi 7 Professional
 
#5

Re: Form screenshot

  Alt 19. Mai 2008, 06:15
Zitat von taktaky:
wie kann man Form1-Screenshot erzeugen?
mit dem Code wird den gesamten Bildschirm kopiert
Versuch es mal hiermit, sollte auch bei minimierten Fenstern funktionieren
Delphi-Quellcode:
Function myBMPWindowSnap(var bmp: TBitmap; windowHandle: HWND): boolean;
var rc : TRect;
    huser32 : THandle;
    F : function(Hnd: HWND; HdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
begin
   Result := False;
   huser32 := GetModuleHandle(user32);
   if huser32 <> 0 then begin
     @F := GetProcAddress(huser32, 'PrintWindow');
     if @F <> nil then begin
       GetWindowRect(windowHandle, rc);
       bmp.Width := rc.Right - rc.Left;
       bmp.Height := rc.Bottom - rc.Top;
       bmp.Canvas.Lock;
       try
         Result := F(windowHandle, bmp.Canvas.Handle, 0);
       finally
         bmp.Canvas.Unlock;
         if Result and ((bmp.Width = 0) or (bmp.Height = 0))
           then Result := False;
       end;
     end;
   end;
end;
Grüße aus Kassel.

Konfuzius sprach: Etwas lernen und sich immer wieder darin üben - schafft das nicht auch Befriedigung?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Form screenshot

  Alt 19. Mai 2008, 07:29
Ginge das nicht einfach mit GetFormImage ?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#7

Re: Form screenshot

  Alt 19. Mai 2008, 10:28
Zitat von DeddyH:
Ginge das nicht einfach mit GetFormImage ?
GetFormImage kopiert nur Delphi-Objekte !
d.h. wenn ich in meinen Webbrwoser eine Seite aufrufe, dann wird nicht
kopiert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Form screenshot

  Alt 19. Mai 2008, 10:34
Von Webbrowser hast Du ja auch nichts gesagt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Form screenshot

  Alt 19. Mai 2008, 11:17
Hast schon versucht das Desktophandle gegen das Handle der Anwendung auszutauschen?
  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 07:55 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