Hi,
also ich habe nun versucht, ein Programm zu schreiben, welches die Tasten überwacht, und wenn man Druck drückt, einen Screenshot macht, ihn mit Datum und Zeit deklariert und abspeichert.
In der Theorie klappt das auch einwandfrei, doch leider in der Praxis nicht...
Hier mal mein Code:
Delphi-Quellcode:
procedure ScreenToFile(aFileName: string);
var
Bitmap: TBitmap;
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
try
Canvas.Handle := GetWindowDC(0);
try
Bitmap := TBitmap.Create;
try
Bitmap.Width := Screen.DesktopWidth;
Bitmap.Height:= Screen.DesktopHeight;
Bitmap.PixelFormat := pfDevice;
BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
Screen.DesktopTop, Bitmap.Canvas.CopyMode);
Bitmap.SaveToFile(aFileName+'.bmp');
finally
Bitmap.Free;
end;
finally
ReleaseDC(0, Canvas.Handle);
end;
finally
Canvas.Free;
end;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #44 then
ScreenToFile(DateToStr(now)+'_'+TimeToStr(now));
end;
So, nun erstens das Problem, dass das Programm den KeyPress nicht erkennt, zweitens spuckt mir das Programm einen Error (Falscher Parameter) aus, wenn ich die Prozedur in einem Button abrufe.
Bitte um Hilfe bzw Lösungsvorschläge
PS: Am besten wäre es dann noch, wenn ich das Programm in die Tray Leiste setzen könnte, aber das hab ich jetz noch nicht angefangen zu coden, würde mich trotzdem über einen Ansatz freuen.
Gruß,
gasty