每个 Windows 开发人员都非常熟悉以下形式的警报:

Foo.exe 遇到问题需要关闭。

我对我的应用程序时不时地爆炸(当然仅在开发期间)感到无奈,但当它们发生时,我不想在这里看到“Foo.exe”。我想看到一个“友好”的名称,例如“FooBrowser™”。

我在 MSDN 文档中到处搜索了覆盖该字符串的方法,但没有找到。我进行了大量的实验,看看我是否能在没有运气的情况下偶然发现这个机制。然而,当我在网上搜索“遇到问题并需要关闭”时,我看到很多人在讨论前面带有友好名称的实例,我怀疑他们都用自己的警报替换了整个警报。:-)

我需要它适用于本机 Win32 应用程序;.NET 不是一个选择。我在网络上看到讨论的一组示例包括 Microsoft Internet Explorer(本机应用程序)和 Microsoft Works(我认为它仍然是本机应用程序,尽管自从我看到它以来已经有四个亿年了)。

秘密握手的秘密是什么?

有帮助吗?

解决方案

我不知道你的目标到底是什么版本的Windows,但较新的会尽量当你崩溃为使用友好的产品名称。

请确保你添加一个版本资源到你的可执行文件,并提供一个友好的产品名和文件名,在FileDescription字符串。

上MSDN页提供了更多的信息。

其他提示

我的理解是,一旦你的异常冒泡的操作系统,你的运气了。我的办法是捕捉的到达OS异常前的。在我的应用程序,我有一个表格,我显示我有未处理的异常,它允许用户提交错误报告,防止OS无法显示你所谈论的形式。

仅有一个不同的角度:)

为什么不直接重命名您的应用程序可执行文件 FooBrowser™.exe?

HMM。我不知道这是肯定的什么都会做,但它是值得一试。尝试寻找到 SetCurrentProcessExplicitAppUserModelID

你能不能创建一个包含应用程序的友好名称的简单字符串资源,并使用格式化的消息是什么时候?

你怎么认为呢?

希望这有助于 最好的祝福, 汤姆。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top