Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sreenshot vom aktuellen Fenster? (https://www.delphipraxis.net/89506-sreenshot-vom-aktuellen-fenster.html)

smart 1. Apr 2007 13:04


Sreenshot vom aktuellen Fenster?
 
Hallo Alle!

Wie kann ich einen Sreenshot, immer vom aktuellen Fenster mit Delphi machen? Habe schon einige Codes getestet. Die machen meist vom ganzen Desktop einen Sreenshot. Hat Einer von Euch vielleicht ein Stück Code oder einen Tipp?

Gruß
Heike

fLaSh11 1. Apr 2007 13:08

Re: Sreenshot vom aktuellen Fenster?
 
Alt+Print

smart 1. Apr 2007 13:14

Re: Sreenshot vom aktuellen Fenster?
 
Zitat:

Zitat von fLaSh11
Alt+Print

Mit Delphi- Code! (siehe oben) ;-)

Gruß
Heike

fLaSh11 1. Apr 2007 13:16

Re: Sreenshot vom aktuellen Fenster?
 
wozu wenn Windows das Feature schon mitbringt^^?

smart 1. Apr 2007 13:21

Re: Sreenshot vom aktuellen Fenster?
 
Zitat:

Zitat von fLaSh11
wozu wenn Windows das Feature schon mitbringt^^?

Ich schreibe ein Programm, dass diese screenshots von Zeit zu Zeit automatisch macht und dann ein Archiv erstellt.

Gruß
Heike

DMW 1. Apr 2007 13:24

Re: Sreenshot vom aktuellen Fenster?
 
So etwas hatte ich mir mal gebastelt, allerdings mit C++Builder und GDI+. GDI+ verwendete ich allerdings hauptsächlich wegen der Formatunterstützung (.png), der für dich interessante Teil ist hauptsächlich GDI und sollte auch in Delphi praktikabel sein. Und auch für die GDI+ gibt es Delphi-Wrapper, im Zweifelsfall auch ein C-Interface.

Hier der Download:
http://www.audacia-software.de/pf/sst100.zip

Jelly 1. Apr 2007 13:27

Re: Sreenshot vom aktuellen Fenster?
 
Probiers mal so:

Delphi-Quellcode:
procedure WindowShot (var B : TBitmap) ;
var
  H : THandle ;
  R, RClient : TRect ;

begin
  H := GetActiveWindow ;

  if H <> 0 then begin
      GetWindowRect (H,R) ;
      B.Width := R.Right-R.Left ;
      B.Height := R.Bottom-R.Top ;
      BitBlt(B.Canvas.handle, 0,0 , B.Width, B.Height, GetDc(0), R.left, R.Top, SRCCOPY);
  end ;
end ;

bitsetter 1. Apr 2007 13:34

Re: Sreenshot vom aktuellen Fenster?
 
Hi,

bei
Delphi-Quellcode:
GetDc(0)
Delphi-Quellcode:
ReleaseDC()
bitte nicht vergessen.

smart 1. Apr 2007 14:18

Re: Sreenshot vom aktuellen Fenster?
 
Zitat:

Zitat von Jelly
Delphi-Quellcode:
procedure WindowShot (var B : TBitmap) ;
var
  H : THandle ;
  R, RClient : TRect ;

begin
  H := GetActiveWindow ;

  if H <> 0 then begin
      GetWindowRect (H,R) ;
      B.Width := R.Right-R.Left ;
      B.Height := R.Bottom-R.Top ;
      BitBlt(B.Canvas.handle, 0,0 , B.Width, B.Height, GetDc(0), R.left, R.Top, SRCCOPY);
  end ;
end ;

Vielen Dank!
Klappt schon, aber nur in der eigenen Anwendung. Sobald ich ein fremdes Fenster öffne geht es nicht mehr.

Gruß
Heike

Blackheart 1. Apr 2007 14:29

Re: Sreenshot vom aktuellen Fenster?
 
Alt+Print
Delphi-Quellcode:
keybd_event(VK_MENU , 0, 0, 0);
  keybd_event(VK_MENU , 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_SNAPSHOT , 0, 0, 0);
  keybd_event(VK_SNAPSHOT , 0, KEYEVENTF_KEYUP, 0);


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Seite 1 von 2  1 2      

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