Ich habe zufällig heute mit der Zwischenablage herumgespielt und da ist mir dieses Verhalten auch aufgefallen.
Bei mir ist dieser Fehler wesentlich öfter aufgetreten, allerdings reagiere ich auch direkt auf eine Änderung der Zwischenablage.
Mit folgendem Code kann ich aber dann doch auf die Zwischenablage zugreifen.
Es wird einfach bei einer
Exception bis zu 50 mal versucht auf die Zwischenablage zuzugreifen und vor jedem Zugriff wird jeweils 20ms gewartet. Insgesamt wird also ca. 1 Sekunde versucht darauf zuzugreifen.
Oft funktioniert der erste Zugriff, aber teilweise auch erst nach dem 6-7 Mal
Delphi-Quellcode:
var
lClipResult : Boolean;
lClipCount : Integer;
begin
lClipResult := False;
lClipCount := 0;
repeat
Inc( lClipCount );
if lClipCount > 1
then
Sleep( 20 );
try
Clipboard.Open;
try
// Jetzt irgendwas mit dem Clipboard machen
lClipResult := True;
finally
Clipboard.Close;
end;
except
// man könnte das jetzt protokollieren, aber macht eigentlich nur Sinn
// wenn auch nach 50 Versuchen kein Zugriff erfolgen konnte
end;
until lClipResult or ( lClipCount > 50 );
end;
Meine Vermutung:
Die Zwischenablage ist durch eine andere Anwendung noch gesperrt, weil von dort etwas hineinkopiert (oder auch ausgelesen?) wird.
Somit ist das Verhalten wohl "normal", denn ich habe keine Information / Eigenschaft gefunden, die da lautet Clipboard.Locked o.ä.
Frag doch mal, ob an dem betroffenen Kundenrechner so was wie ein Clipboard-Manager installiert ist.