Как я могу настроить “%s столкнулся с проблемой и должен закрыться”?

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

  •  19-09-2019
  •  | 
  •  

Вопрос

Каждый разработчик Windows слишком хорошо знаком с предупреждением в форме:

Foo.exe столкнулся с проблемой и нуждается в закрытии.

Я смирился с тем, что мои приложения время от времени взрываются (конечно, только во время разработки), но когда это происходит, я не хочу видеть "Foo.exe" здесь.Я хочу видеть "понятное" имя, такое как "FooBrowser™".

Я просмотрел документацию MSDN вдоль и поперек в поисках способа переопределить эту строку и не нашел его.И я провел множество экспериментов, чтобы посмотреть, смогу ли я наткнуться на этот механизм без всякой удачи.Однако, когда я ищу в Интернете "столкнулся с проблемой и должен закрыться", я вижу множество людей, обсуждающих экземпляры, которым предшествует понятное имя, и я сомневаюсь, что все они заменяют все предупреждение своим собственным.:-)

Мне нужно, чтобы это работало для собственных приложений Win32;.NET - это не вариант.Набор примеров, которые я вижу обсуждаемыми в Интернете, включает Microsoft Internet Explorer (родное приложение) и Microsoft Works (которое, я полагаю, все еще является родным приложением, хотя прошло четыре эпохи с тех пор, как я его увидел).

В чем секрет рукопожатия?

Это было полезно?

Решение

Я не уверен точно, на какую версию Windows вы ориентируетесь, но более новые будут пытаться использовать понятное название продукта при сбое.

Убедитесь, что вы добавили ресурс версии в свой исполняемый файл и указали понятное название продукта и имя файла в строке FileDescription.

Это Страница в MSDN содержится дополнительная информация.

Другие советы

Насколько я понимаю, как только ваше исключение всплывает в операционной системе, вам не повезло.Мой подход состоял бы в том, чтобы перехватить исключение до того , как он достигает операционной системы.В моих приложениях у меня есть форма, которую я показываю, когда у меня возникает необработанное исключение, которое позволяет пользователю отправлять отчеты об ошибках, не позволяя операционной системе отображать форму, о которой вы говорите.

Просто другая перспектива :)

Почему бы просто не переименовать исполняемый файл вашего приложения FooBrowser™.exe?

хм.Я не знаю, точно ли это поможет, но попробовать стоит.Попробуйте заглянуть в SetCurrentProcessExplicitAppUserModelID SetCurrentProcessExplicitAppUserModelID

Не могли бы вы создать простой строковый ресурс, содержащий понятное название вашего приложения, и использовать его при форматировании сообщения?

А ты как думаешь?

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top