Comment puis-je personnaliser « % s a rencontré un problème et doit fermer »?

StackOverflow https://stackoverflow.com/questions/1885064

  •  19-09-2019
  •  | 
  •  

Question

développeur Chaque Windows est trop familier avec une alerte de la forme:

  

foo.exe a rencontré un problème et doit fermer.

Je suis résigné à mes applications qui soufflent de temps en temps (seulement au cours du développement bien sûr), mais quand ils le font, je ne veux pas voir « foo.exe » ici. Je veux voir un nom « convivial », comme « FooBrowser ™ ».

Je l'ai cherché la documentation MSDN haut et bas pour un moyen de passer outre cette chaîne et non trouvé. Et je l'ai mené beaucoup d'expériences pour voir si je pouvais tomber sur le mécanisme sans chance. Cependant, quand je recherche sur le Web pour « a rencontré un problème et doit fermer », je vois beaucoup de gens discuter des cas précédés d'un nom convivial, et je doute qu'ils sont tous en remplaçant l'alerte entière avec leur propre. : -)

J'ai besoin que cela fonctionne pour les applications Win32 natives; .NET est pas une option. L'ensemble des exemples que je vois discuté sur le Web inclut Microsoft Internet Explorer (une application native) et Microsoft Works (que je suppose est encore une application native bien qu'il a été quatre éons depuis que je l'ai vu).

Quelle est la poignée de main secrète?

Était-ce utile?

La solution

Je ne sais pas exactement quelle version de Windows que vous ciblez, mais les plus récents vais essayer d'utiliser le nom du produit convivial lorsque vous avez un accident.

Assurez-vous que vous ajoutez une ressource de version à votre exécutable, et de fournir un nom de produit convivial et le nom du fichier, dans la chaîne FileDescription.

sur MSDN fournit plus informations.

Autres conseils

Si je comprends bien qu'une fois que votre exception bouillonne à l'OS, vous êtes hors de la chance. Mon approche serait d'attraper l'exception avant il atteint le système d'exploitation. Dans mes applications, j'ai une forme que je montre quand j'ai une exception non gérée qui permet à l'utilisateur de soumettre des rapports de bogues, ce qui empêche le système d'exploitation de montrer la forme que vous parlez.

Juste un autre point de vue:)

Pourquoi ne pas simplement renommer votre FooBrowser™.exe exécutable de l'application?

hmm. Je ne sais pas si cela est sûr ce qui va le faire, mais il vaut la peine d'essayer. Essayez de regarder dans SetCurrentProcessExplicitAppUserModelID

Pouvez-vous pas créer une ressource simple chaîne qui contient le nom convivial de votre application et l'utiliser lors du formatage du message?

Que pensez-vous?

Hope this helps, Meilleures salutations, Tom.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top