Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Prism Screenshot mit "echtem" .net 1.1 ... (https://www.delphipraxis.net/93772-screenshot-mit-echtem-net-1-1-a.html)

Hajoseb 11. Jun 2007 09:09


Screenshot mit "echtem" .net 1.1 ...
 
Hallo, an die Expertenrunde :-)

Ich nutze zur Zeit Delphi PE 2005 und würde gerne auf Turbo Delphi .net umsteigen.

ABER (das große) ...

Ich habe bisher noch keine Screenshot-Funktion finden können, die mit "echtem" .net arbeitet. Alle Lösungen, die ich bisher im I-net gefunden habe und auch nutze, benutzen "normale" Windows-aufrufe.

Ich schrecke also vor dem Schritt zurück, da ich nicht weis, ob meine Programme (Bis auf die Screencopy komplett in .net) dann noch nutzbar sind.

Gibt es irgendeine Lösung, einen Screencopy (für den gesammten Bildschirm, auch außerhalb meines Programm) in echtem .net zu realisieren und unter Turbo Delphi .net zu nutzen.

Vielen Dank im Vorraus.

P.S: Falls ich die Antwort auf diese Frage hier im Bord nur übersehen habe, bitte einen kutzen Tip auf den Thread. !!! Aber bitte nur, auf Lösungen, die auch mit .net 1.1 funktionieren !!!

Bernhard Geyer 11. Jun 2007 09:26

Re: Screenshot mit "echtem" .net 1.1 ...
 
"echtes" .NET 1.1 ist nur ein Aufsatz auf die Win32-API. Also arbeiten "echte" Scrennshot-Kompos eigentlich genauso wie unter Win32.

Hajoseb 11. Jun 2007 09:32

Re: Screenshot mit "echtem" .net 1.1 ...
 
Aber ist so ein .net 1.1 -Programm wirklich ein .net 1.1 Programm?
Ich wollte nur .net-Komponenten verwenden.

Mfg Hajoseb

Jürgen Thomas 11. Jun 2007 09:51

Re: Screenshot mit "echtem" .net 1.1 ...
 
Hallo Hajoseb,

Christian S. hat Dir schon erläutert, was es mit NET 1.1 und solchen Lösungen auf sich hat. Ausführlichere Antworten wirst Du nirgends finden. Ein Vorgehen habe ich Dir angegeben (das musst Du aber selbst anpassen); Du siehst, dass auch dafür auf gdi32.dll zurückgegriffen wird.

Hast Du auch unter CodeProject gesucht?

Jürgen

Hajoseb 11. Jun 2007 10:24

Re: Screenshot mit "echtem" .net 1.1 ...
 
Sorry, ich habe mich falsch ausgedrückt :?

Ich meinte, laufen diese Lösungen mit
Turbo Delphi für .net !!!

Das ist es, worauf es mir ankommt. Ob meine bisherige Lösung auch mit
Turbo Delphi.net zu nutzen ist.

Delphi-Quellcode:
unit uScreencopy;

interface

uses
  System.Drawing,
  System.Windows.Forms,
  System.Drawing.Imaging;

function CopyScreen : Image;

implementation

uses windows;

var g2      : Graphics;
    img    : Image;

function CopyScreen : Image;
var dc1     : HDC;
    dc2     : IntPtr;

begin
  // Kopieren der Fenster-Bitmap in die eigene Bitmap:
  dc1 := GetDC(0);
  dc2 := g2.GetHdc();

  BitBlt(HDC(dc2), 0, 0, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, dc1, 0, 0, 13369376);
  ReleaseDC(0,dc1);
  g2.ReleaseHdc(dc2);

  Result := img;
end;

  //  Erzeugen einer neuen Bitmap mit den Maßen und der Farbtiefe des aktuellen Fensters:
begin
  img := system.Drawing.Bitmap.Create(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  g2  := Graphics.FromImage(img);
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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