Pregunta

Cada desarrollador de Windows es demasiado familiar con una alerta de la forma:

  

foo.exe ha detectado un problema y debe cerrarse.

Estoy resignado a mis aplicaciones que hacen saltar de vez en cuando (sólo durante el desarrollo del curso), pero cuando lo hacen, no lo quiero ver "foo.exe" aquí. Quiero ver un nombre "amigable", tales como "FooBrowser ™".

He buscado en la documentación de MSDN alta y baja para una forma de anular esta cadena y no la encontré. Y he realizado una gran cantidad de experimentos para ver si podía tropezar a través del mecanismo sin ninguna suerte. Sin embargo, cuando la búsqueda en la web para "ha detectado un problema y debe cerrarse", veo un montón de gente discutiendo casos precedido por un nombre descriptivo, y dudo que todos están reemplazando la alerta por completo con su propia cuenta. : -)

Necesito que esto funcione para aplicaciones Win32 nativas; .NET no es una opción. El conjunto de ejemplos que se discutiera en la web incluye Microsoft Internet Explorer (una aplicación nativa) y Microsoft Works (que supongo es todavía una aplicación nativa a pesar de que han pasado cuatro millones de años desde que lo vi).

¿Qué es el apretón de manos secreto?

¿Fue útil?

Solución

No estoy seguro exactamente qué versión de Windows que está apuntando, pero los más nuevos a tratar de utilizar el nombre del producto amable cuando te estrellas.

Asegúrese de agregar un recurso a su versión ejecutable, y proporciona un nombre de producto respetuoso con el nombre del archivo y de la cadena DescripcionArchivo.

página en MSDN proporciona más información.

Otros consejos

Mi entendimiento es que una vez que su excepción burbujas hasta el sistema operativo, estás de suerte. Mi enfoque sería detectar la excepción antes que llegue al sistema operativo. En mis aplicaciones, Tengo un formulario que mostrar cuando tengo una excepción no controlada que permite al usuario enviar informes de errores, evitando que el sistema operativo de mostrar el formulario que está hablando.

Sólo una perspectiva diferente:)

¿Por qué no cambiar el nombre de FooBrowser™.exe aplicación ejecutable?

hmm. No sé si esto es para asegurarse de lo que va a hacerlo, pero vale la pena intentarlo. Trate de buscar en SetCurrentProcessExplicitAppUserModelID

¿No podría crear un recurso de cadena simple que contiene el nombre descriptivo de la aplicación y el uso que al formatear el mensaje?

¿Qué opinas?

Espero que esta ayuda, Atentamente, Tom.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top