Hi,
ich hab vor einen
Screenshot zu machen und ihn dann anzuzeigen lassen/ zu speichern.
Dazu habe ich folgenden Quelltext gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
keybd_event(VK_SNAPSHOT, 0, 0, 0);
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);
if Clipboard.HasFormat(CF_BITMAP) then
begin
Image1.Picture.Bitmap.Assign(Clipboard);
end;
end;
Um ganzen Prozeduren für den
Screenshot auszuweichen, simuliere ich einfach die Druck-Taste.
Nun wird aber immer der alte
Screenshot (von dem davor) angezeigt. D.h.:
1. Nichts passiert, da scheinbar kein
Screenshot im Zwischenspeicher ist.
2.
Screenshot vom 1. mal wird angezeigt, falls sich also etwas verändert hat ist das noch nicht drin.
3.
Screenshot vom 2. mal wird angezeigt.
Usw.
Dies ist ein wenig dumm, da ich den
Screenshot ja schon beim ersten mal haben möchte. Ich habe schon versucht, es einfach zu verdoppeln, also 2x "keyboard_event...end;". Außerdem hab ich versucht mittels "Sleep(10000)" eine Verzögerung dazwischen zu bekommen, falls der
Screenshot ein wenig Bearbeitung benötigt. Hat aber beides nicht funktioniert.
Ich hoffe einer von euch hat eine Lösung.
Gruß Mariaki