Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi desktop screenshot (https://www.delphipraxis.net/20331-desktop-screenshot.html)

nikon.de 16. Apr 2004 07:23


desktop screenshot
 
hi, ich möchte nen desk screen machen den aber als jpg oder gif speichern , auserdem soll nicht der screen 1024 x 70balbl sein , sondern 300x300 aber der desk soll zu sehen sein , komplett ... hat jemand ne ahnung wie man des macht ?

danke

fkerber 16. Apr 2004 07:34

Re: desktop screenshot
 
Hi!

In der CodeLib müsste ein bsp. zu Screenshots sein. Das kannst du ja als Grundlage nehmen.

Ciao fkerber

nikon.de 16. Apr 2004 07:58

Re: desktop screenshot
 
hab ich mir schon angeguggt .

fkerber 16. Apr 2004 08:01

Re: desktop screenshot
 
Hi!

Und weiter?


Ciao fkerber

nikon.de 16. Apr 2004 08:09

Re: desktop screenshot
 
kann man nen screen machen als bmp und des ist 2.5mb gross :( und hat die größe 1024 x 768 ... soll aber höchsten 200kb gross sein und die größe 300x300 haben und der desk soll komplett zu sehen sein :)

rebugger 16. Apr 2004 08:14

Re: desktop screenshot
 
Schon daran gedacht per Irfanview (http://www.irfanview.de) die Größe und das Dateiformat zu ändern ???

Luckie 16. Apr 2004 08:16

Re: desktop screenshot
 
Forensuche schon bemüht? Hier im Forum suchenscreenshot and jpg.

a.vollmer 16. Apr 2004 08:23

Re: desktop screenshot
 
Delphi-Quellcode:
procedure TForm1.ScreenToFile(aFileName: string);
var
  Bitmap: TBitmap;
  JPG : TJPEGImage;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    Application.ProcessMessages;
    try
      Bitmap := TBitmap.Create;
      Application.ProcessMessages;
      JPG := TJPEGImage.Create;
      Bitmap.PixelFormat:=pf8bit;
       Application.ProcessMessages;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;
         Application.ProcessMessages;
        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(   
        Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
        Screen.DesktopTop, Bitmap.Canvas.CopyMode);
        Application.ProcessMessages;
//Kompression
        JPG.CompressionQuality:=50;
        JPG.Assign(Bitmap);
        Application.ProcessMessages;
        if fileexists(aFileName) then
          deletefile(aFileName);
        JPG.SaveToFile(aFileName);
      finally
//Größe
       resizepictur(aFileName,300,300);
        Bitmap.Free;
        JPG.Free;  
      end;
    finally  
      ReleaseDC(0, Canvas.Handle);
      Application.ProcessMessages;
    end;  
  finally  
    Canvas.Free;
  end;
end;

Gruß

Alex

Akut-Programming 16. Apr 2004 08:42

Re: desktop screenshot
 
Zitat:

Zitat von nikon.de
kann man nen screen machen als bmp und des ist 2.5mb gross :(

Das Problem hatte ich in meinem Projekt auch. Hatte aber bei Torry ne Komponente gefunden, die bmp -> jpg komprimiert. (heißt glaube sogar "bmptojpg") Damit klappts ganz gut!

Gruß,

Luckie 16. Apr 2004 08:50

Re: desktop screenshot
 
Dazu braucht man keine Komponente. Kann man alles wunderbar selber machen wie obiger Code und die Suche in der Delphipraxis zeigen.

Akut-Programming 16. Apr 2004 09:06

Re: desktop screenshot
 
Zitat:

Zitat von Luckie
...Kann man alles wunderbar selber machen wie obiger Code und die Suche in der Delphipraxis zeigen.

Joa, da haste recht Luckie!! Aber als ich damals das Prob in meinem Tool hatte.. hatt ich solch code hier nicht gefunden (vielleicht nicht gründlich genug gesucht :roll: ) und daher hattch dann die Kompo von Torry genommen... :stupid: - Ma gucken, vielleicht mops ich mir den Code auch noch und ersetz die Kompo dadurch :zwinker:

Gruß,

nikon.de 16. Apr 2004 23:58

Re: desktop screenshot
 
die firma dankt :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz