Frage

Unter welchen Umständen wird die Win32-API-Funktion OleGetClipboard () fehlschlagen und CLIPBRD_E_CANT_OPEN zurückkehren?

Mehr Hintergrund: ich mit einem Firefox Bugfix bin zu unterstützen. Details hier:

bug 444800 - nicht-Bilddaten aus der Zwischenablage in lossless Format

abrufen

Bei der automatisierten Test, dass ich dazu beigetragen, schreiben, sehen wir, dass OleGetClipboard () manchmal schlägt fehl und gibt CLIPBRD_E_CANT_OPEN. Das ist unerwartet, und die Firefox Kodebilddaten aus der Windows-Zwischenablage zu ziehen, hängen von diesem Anruf erfolgreich zu sein.

War es hilfreich?

Lösung

Die Dokumentation sagt, dass OleGetClipboard mit diesem Fehlercode fehlschlagen kann, wenn OpenClipboard ausfällt. Im Gegenzug, wenn Sie diese Dokumentation zu lesen, heißt es:

" Open schlägt fehl, wenn ein anderes Fenster die Zwischenablage geöffnet hat."

Es ist eine exklusive Ressource: nur ein Fenster auf die Zwischenablage offen zu einem Zeitpunkt haben kann. Grundsätzlich, wenn Sie es nicht tun, eine Weile warten und versuchen Sie es erneut.

Andere Tipps

Ist Ihr Test läuft über Terminal Services? Siehe CLIPBRD_E_CANT_OPEN Fehler, wenn die Zwischenablage von .NET Einstellung.

Von dem, was ich in MSDN es scheint zu implizieren, dass das Problem mit seinem Ursprung wen auch immer tatsächlich versucht, um die Daten zu setzen in die Zwischenablage, i, .E. die Quelle der Daten. Wenn ihr Aufruf an OleSetClipboard () ist fehlgeschlagen, für welchen Gründen auch immer, dann werden Sie nicht in der Lage sein, Sachen zu extrahieren. Ich würde einen Blick auf, wie die Daten in die Zwischenablage gestellt wird, und sehen, ob es ein Testfall ist, dass dies führt (die Daten in die Zwischenablage kopieren) und dann verursacht das Problem über Sie reden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top