Autor Beitrag
bshuntermaster
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 17.12.07 16:33 
Hallo,
ich bin ein totaler Delphi - Neuling und habe folgendes Problem:
Ich brauche eine .exe Datei, die aus einem anderen Programm aus gestartet, einen Screenshot macht, als Screenshot.bmp speichert und sich wieder schließt.
Ich hab zwar das Speichern hingepfriemelt, aber nur über einen Buttonklick. Soll aber kein Formular werden. Ich habe keine Ahnung wie das mit Turbo Delphi geht. Bin über jede Hilfe dankbar.

Viele Grüße
Benny

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm3 = class(TForm)
   Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var DCDesk: HDC;
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  bmp.Height := Screen.Height;
  bmp.Width := Screen.Width;

  DCDesk := GetWindowDC(GetDesktopWindow);

  BitBlt(bmp.Canvas.Handle, 00, Screen.Width, Screen.Height,
         DCDesk, 00, SRCCOPY);

  bmp.SaveToFile('ScreenShot.bmp');

  ReleaseDC(GetDesktopWindow, DCDesk);

  bmp.Free;
end;
end.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mo 17.12.07 17:02 
Hallo! :welcome:

Warum erstellst du dann eine Anwendung die eine Form anzeigt. ;-)

Am besten du entfernst die unit Unit3.pas aus dem Projekt. Dazu einfach im Menu "Projekt" den Punkt "Aus dem Projekt entfernen" anklicken und Unit3.pas aus dem Projekt entfernen. Dann öffnest du die Projektdatei (Menü "Projekt" und dann "Quelltext anzeigen") und fügst da den Code der den Screenshot macht ein.

Lg, Martin

_________________
Ein Nutzer der Ecke ;-)
bshuntermaster Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 18.12.07 11:34 
Danke, das haut jetzt so hin wie ich das will.

Nur ein Problem gibts:
Ich will aus einem laufendem mpeg einen Screenshot schießen, krieg aber nur n schwarzes Bild. Kann man da was gegen tun?

Danke
Benny
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 18.12.07 11:52 
Systemsteuerung - Anzeige - Einstellungen - Erweiterung - Problembehandlung - Hardwarebeschleunigung auf keine setzen, sollte dann eigentlich funktionieren.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
bshuntermaster Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 18.12.07 12:26 
Das funktioniert. Gibts ne Möglichkeit diese Einstellungen (vorausgesetzt, die Rechte sind vorhanden) zu automatisieren?
(Beim Starten des Programms die Hardwarebeschleunigung ausschalten, beim Beenden einschalten)

Gruß
Benny
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Di 18.12.07 13:33 
@bshuntermaster: Besser ist es wenn du dafür eine neue Frage aufmachst. Das Diskutieren mehrere Fragen in einem Topic ist meistens sehr schwierig. ;-)

Lg, Martin

_________________
Ein Nutzer der Ecke ;-)