每个Windows开发人员都非常熟悉该表单的警报:
Foo.exe遇到问题需要关闭。
我不时地对我的应用程序(仅在开发期间)进行了调整,但是当他们这样做时,我不想在这里看到“Foo.exe”。我想看一个“友好”的名字,比如“FooBrowser™”。
我搜索了MSDN文档的高低,以获取覆盖此字符串的方法,但未找到它。我已经进行了大量的实验,看看我是否可以在没有任何运气的情况下偶然发现机制。但是,当我在网上搜索“遇到问题并需要关闭”时,我看到很多人在讨论以友好名称开头的实例,我怀疑他们都是用自己的名字替换整个警报。 : - )
我需要这个才能用于本机Win32应用程序; .NET不是一个选项。我在Web上讨论的一组示例包括Microsoft Internet Explorer(本机应用程序)和Microsoft Works(我认为它仍然是本机应用程序,尽管自从我看到它以来已经有四个月了。)
什么是秘密握手?
答案 0 :(得分:4)
我不确定您要定位的Windows版本,但是较新的版本会在您崩溃时尝试使用友好的产品名称。
确保在可执行文件中添加版本资源,并在FileDescription字符串中提供友好的产品名称和文件名。
MSDN上的此page提供了更多信息。
答案 1 :(得分:2)
我的理解是,一旦你的异常冒泡到操作系统,你运气不好。我的方法是在到达操作系统之前捕获异常。在我的应用程序中,我有一个表单,当我有一个未处理的异常时,我会显示该表单,允许用户提交错误报告,防止操作系统显示您正在谈论的表单。
只是一个不同的观点:)
答案 2 :(得分:1)
为什么不重命名您的应用程序可执行文件FooBrowser™.exe
?
答案 3 :(得分:1)
HMM。我不知道这是否肯定会做什么,但值得一试。尝试查看SetCurrentProcessExplicitAppUserModelID
答案 4 :(得分:0)
您是否可以创建一个包含应用程序友好名称的简单字符串资源,并在格式化邮件时使用它?
您怎么看?
希望这有帮助, 最好的祝福, 汤姆。