Да, есть. Это Alt+F4.
Это комбинация клавиш для завершения программы . Единственная причина, по которой она не работает так, как рекламируется - это невежественные программисты, которые отказываются следовать рекомендациям Microsoft по проектированию.
Эта проблема будет сохраняться с ** любыми другими** горячими клавишами, а также. Вы можете только возможно создать пользовательское решение с AutoHotKey (или аналогичные инструменты), который убивает процесс. Но это, скорее всего, заставит вас потерять много работы. Так как это вполне метод грубой силы для выхода из процесса.
Я хочу знать больше!
OK, насколько я понимаю, есть несколько способов завершения работы приложения Windows.
- Размещение
WM_CLOSE
сообщение окна в главном окне приложения.
- Уничтожение в главное окно приложения.
- Прерывание процесса.
Первым способом является путь clean. Способ, которым вы собираетесь закрыть приложение. Это то же самое, что и Alt+F4. Нажав Alt+F4, вы просто отправите сообщение WM_CLOSE
в окно приложения.
Теперь рассмотрим все 3 способа в обратном порядке.
Прерывание процесса
В Windows приложение живет в процессе . Внутри этого процесса приложение может создать окно . Это окно - то, что вы увидите на рабочем столе, и с чем вы будете взаимодействовать.
Итак, если процесс является root приложения, если вы его завершите, все остальное тоже исчезнет. Таким образом, это было бы здорово, если бы вы достаточно закончили приложение. Но это kill приложения так внезапно, что у него не будет возможности сохранить критические данные на диск.
Так что это не рекомендуется!
Уничтожение главного окна приложения
Как мы только что узнали, главное окно приложения является лишь частью process. Так что если мы просто уничтожим это окно, то процесс все равно будет вонять в это место :(
И избавиться от него будет еще сложнее, чем от приложения.
Скорее всего, это самый отвратительный подход к попытке закончить приложение. Держитесь подальше!
Размещение сообщения WM_CLOSE
Windows - это операционная система, основанная на сообщениях. Это означает, что компоненты общаются друг с другом, посылая друг другу маленькие сообщения.
Одним из таких сообщений является сообщение WM_CLOSE
.
Если приложение получает это сообщение, соглашаются, что это приложение должно захватить все действия, а затем и жизнь.
Но каждый программист может сам решать, как ему поступить с сообщением.
Как сказала нам ранее документация , поведением default будет вызов DestroyWindow
и, таким образом, выполнение нашего подхода к выходу из приложения #2.
С той небольшой разницей, что в этот раз, это преднамеренно и у программы есть все шансы сохранить критические данные.
Заключение
Так что, как видите, мы здесь практически на милость каждого программиста. Или мы рискуем потерять данные (не стоит так рисковать!).