Hallo ich bin gerade dabei mir ein Programm zu schreiben welches ein Symbol in die Systray legt und ansonsten nicht weiter sichtbar ist. Wenn man auf das Icon in der Systray klickt soll ein Screenshot vom aktuellen Fenster gemacht werden und der dann gespeichert werden. (Sinn von dem Programm ist es Screenshots von Fehlermeldungen zu machen).
Ich habe mir die wichtigen Sachen hier im Forum zusammengesucht und zusammenkopiert.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.CoolTrayIcon1Startup(Sender: TObject; var ShowMainForm: Boolean); begin ShowMainForm := false; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure ScreenShotActiveWindow(Bild: TBitMap); var c : TCanvas; r, t : TRect; h : THandle; begin c := TCanvas.Create; c.Handle := GetWindowDC(GetDesktopWindow); h := GetForeGroundWindow; if h<>0 then GetWindowRect(h, t); try r := Rect(0,0,t.Right-t.left, t.Bottom-t.Top); Bild.Width := t.Right-t.left; Bild.Height := t.Bottom-t.Top; Bild.Canvas.CopyRect(r, c, t); finally ReleaseDC(0, c.handle); c.Free; end; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.CoolTrayIcon1Click(Sender: TObject); var pic : TBitMap begin
ScreenShotActiveWindow(pic); pic.SaveToFile('c:\test.bmp');
end;
end. |
Wie es aussieht habe ich beim Aufruf irgendwas verafft, da ich jedesmal wenn ich auf das Icon klicke einen Fehler bekomme.
Ich danke schonmal für die Hilfe
Mfg