Estamos implementando algunas máquinas virtuales con software de robots que realiza acciones en un navegador, y estamos teniendo problemas con algunas de ellas al acceder al portapapeles para leer o escribir. Muestran un "No se puede abrir el portapapeles".
Entonces, hay otra aplicación que sostiene el portapapeles.
¿Cómo podemos depurar eso? ¿Hay alguna herramienta que pueda monitorear eso? AFAIK ProcMon no hace el trabajo.
Las máquinas son Windows XP.
windows
monitoring
clipboard
Áxel Costas Pena
fuente
fuente
Respuestas:
La API del Portapapeles data de Windows 3.0 (¿o anterior?) Y está mal diseñada. Desafortunadamente, en lugar de tener primitivas get / set, usa open / close, lo que hace posible que las aplicaciones mantengan su acceso durante demasiado tiempo. Vista aportó algunas mejoras al manejo de la cadena de televidentes, pero no una nueva API.
Con la API existente, es posible identificar al propietario del portapapeles solo si ese propietario también tiene al menos una ventana abierta. Si el propietario no tiene ventanas, entonces uno no tiene suerte.
En el hilo ¿Por qué mi portapapeles dejó de funcionar? , Jay Parzych ha contribuido con el siguiente código vbs donde la función GetClipboardLocker devuelve el nombre de archivo del proceso que contiene el portapapeles:
Se puede encontrar una función C # similar en la publicación Obtener título / título de los propietarios del Portapapeles .
fuente