Wir stellen einige virtuelle Maschinen mit Robotersoftware bereit, die Aktionen in einem Browser ausführt, und wir haben Probleme mit einigen davon, wenn wir zum Lesen oder Schreiben auf die Zwischenablage zugreifen. Sie zeigen eine "Zwischenablage kann nicht geöffnet werden".
Es gibt also eine andere Anwendung, die die Zwischenablage enthält.
Wie können wir das debuggen? Gibt es ein Tool, das das überwachen kann? AFAIK ProcMon nicht die Arbeit machen.
Maschinen sind Windows XP.
windows
monitoring
clipboard
Áxel Costas Pena
quelle
quelle
Antworten:
Die API für die Zwischenablage stammt aus Windows 3.0 (oder früher?) Und ist schlecht gestaltet. Leider werden anstelle von get / set-Grundelementen open / close verwendet, wodurch Anwendungen ihren Zugriff viel zu lange behalten können. Vista hat die Handhabung der Viewer-Kette etwas verbessert, aber keine neue API.
Mit der vorhandenen API ist es nur möglich, den Eigentümer der Zwischenablage zu identifizieren, wenn dieser Eigentümer auch mindestens ein geöffnetes Fenster hat. Wenn der Besitzer keine Fenster hat, hat man Pech.
Im Thread Warum funktioniert meine Zwischenablage nicht mehr? , Jay Parzych hat den folgenden vbs-Code beigesteuert, in dem die GetClipboardLocker-Funktion den Dateinamen des Prozesses zurückgibt, der die Zwischenablage enthält:
Eine ähnliche C # -Funktion finden Sie im Beitrag Titel / Beschriftung der Zwischenablage-Besitzer abrufen .
quelle