Эмуляция "зависшего" приложения
АрхивУтилитыПозволим себе немного шалости и поиграемся с утилитой BadApp, имитирующей поведение "зависшей" программы, то есть не отвечающей на действия пользователя.
Порой для всестороннего тестирования созданного приложения или модуля, разработчикам приходиться заниматься ну совершенно неадекватными с точки зрения рядового пользователя вещами. Так, например, Александру Авдонину, студенту Санкт-Петербургского государственного технического университета, для доскональной отладки своих системных приложений пришлось прибегнуть к небольшой хитрости и написать утилиту, имитирующую поведение "зависшей" программы, то есть не отвечающей на действия пользователя.
Реализованная утилита получила созвучное своему прикладному применению название Bad Application и вместе с исходниками была выложена на сайте Александра на радость всем желающим, в частности, системным программистам.
Интерфейс Bad Application, несмотря на скромный размер программы (4,5 кб), прост и состоит из линейки выбора приоритета и трех функциональных клавиш, каждая из которых отвечает за те или иные "нехорошие" действия:
- Hang process - генерирует "зависший" процесс с заданным приоритетом. После нажатия этой клавиши придется немало попотеть с диспетчером задач Windows, чтобы удалить из системы неработающую программу. При использовании этой чудо-кнопки советуем избегать установки приоритета реального времени (Realtime), так как результат может оказаться плачевным, и компьютер придется оживлять старым дедовским способом при помощи кнопки Reset на корпусе системного блока.
- Start flashing - включает режим мигания окна приложения в панели задач Windows. Как правило, таким нехитрым методом операционная система напоминает своему пользователю о программах, требующих ввода какой-либо информации или незамедлительных действий.
- Terminate explorer - не задумываясь "убивает" процесс explorer.exe, что приводит к перезагрузке рабочего стола Windows.
Наборчик, как видите, небольшой, но вполне подходящий для использования в практических целях в области программирования и отладки созданных приложений.