Einzelnen Beitrag anzeigen

Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Ich muss für aktuellen Screenshot immer 2x drücken

  Alt 21. Okt 2009, 16:57
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
Benedikt
  Mit Zitat antworten Zitat