Estoy integrando un SDK basado en C de terceros en mi aplicación .NET. La aplicación se ejecutará como un servicio de Windows en un servidor, por lo que no debería interactuar con el usuario de ninguna manera.¿Cómo puedo evitar que una biblioteca de terceros muestre un MessageBox?
Desafortunadamente, en ciertas condiciones de error, insiste en llamar a MessageBoxA, presumiblemente para informar que algo malo ha sucedido. Cuando esto sucede, el servicio deja de responder. ¿Supongo que está esperando que alguien presione Ok?
No es posible tener el proveedor de cambiar su código para mí.
¿Hay alguna manera de que pueda hacer esta llamada en modo no operativo para que mi código pueda manejar la situación automáticamente?
EDITAR: Puede ser importante mencionar que en mi caso particular, el servicio se reiniciaría automáticamente si se bloqueara. Una salida elegante (como sea posible) y repentina es probablemente la mejor resolución para una situación en la que se muestra un MessageBox en mi caso.
No es una respuesta real, lo sé, pero encuentre una mejor biblioteca/servicio. Si una biblioteca tiene este tipo de problema, es probable que tenga más. –
Recuerdo que un ex compañero de trabajo idiota puso un cuadro de mensaje en un código que se sabía que era un servicio.Le dije que lo quitara pero todavía lo dejó y tuvimos que volver a lanzar el software ... no fue bueno. – Tim
¡No, digamos que no es un MessageBox de una biblioteca! Buena pregunta –