Рейтинг разработки: 5
PC Magazine/RE:
Интересная разработка, применение которой выходит далеко за пределы возможностей Microsoft Word. Ее можно отнести к разряду системных утилит с автоматической гарантией безопасности выполняемых команд. Последнее реализуется за счет использования только встроенных в ОС механизмов и отсутствия низкоуровневых функций собственной разработки. Давайте рассмотрим по порядку, как работает данная утилита, что она может и где это может пригодиться.
Как работает?
Среди возможностей языка VBA есть объектное семейство Tasks. На основе его инструментов пользователь получает в свое распоряжение список исполняемых в системе процессов. Аналогичный список также можно получить в Диспетчере задач (Task Manager) Windows. Разница состоит в том, что в Task Manager показывается имя файла запущенного процесса, а в данной разработке – его описательное название. Помимо этого, здесь предоставлена возможность узнать координаты и размеры ассоциированного с выбранным процессом окна (если таковое имеется).
Зачем это нужно?
Во-первых, это пригодится для решения тех же задач, для которых используется Windows Task Manager – прервать исполнение конкретного процесса, активизировать конкретный процесс (сделать его окно активным) и пр. Но в отличие от Task Manager задача решается через VBA, т.е., так сказать, в "защищенном" для ОС режиме. Более того, данная разработка позволяет вызвать из VBA-оболочки ряд системных команд, что может пригодиться на машинах, где прямое обращение к соответствующим командам блокируется.
Во-вторых, программа корректно работает с механизмом восстановления процессов, присутствие которых в памяти отслеживается на уровне ОС (например, Control Toolbox). Известно, что Windows периодически выполняет опрос, и если обнаруживается, что в памяти не работают критичные процессы, то ОС автоматически восстанавливает (запускает) их. Данная разработка "не конфликтует" с системой в этом отношении. Также она не позволяет удалить родительский (parent) процесс, если в памяти еще остаются запущенными им child-процессы.
Следующая полезная функция, реализованная в данной разработке – возможность узнать координаты расположения и размеры окна, открытого для конкретного процесса. Такой функции нет в Windows, хотя необходимость в этой информации иногда возникает. Вспомните, вам знакома ситуация, когда окно прикладной программы можно открыть только на весь экран (максимизировать) или свернуть до кнопки на Панели задач, а перейти в оконный режим не удается – подобная попытка ведет к тому, что вы видите только кнопку на Панели задач, а окна выбранного приложения на экране нет. Названная проблема связана с тем, что Windows иногда "ошибается" в пересчете параметров положения окна на экране и назначает такие значения, что окно оказывается за пределами видимой области экрана. Другими словами, окно становится "невидимым", хотя реально оно существует. Попробуйте исправить такую ситуацию имеющимися в Windows средствами? Единственное, что предлагают обычному пользователю в такой ситуации, – переустановить "неправильно работающее" приложение или еще хуже, Windows.
По сути, данная проблема очень легко решается простыми программными средствами, в том числе VBA. Данная разработка позволяет решать аналогичную задачу также.
Последнее, что еще хочется отметить: данная разработка не требует процедуры инсталляции. Достаточно запустить предлагаемый файл Word, и весь ее набор функций в вашем распоряжении. Более того, Word-файл может находиться удаленно, в локальной сети или в Интернете, а его функции можно использовать на "защищенной" машине, например, в Интернет-кафе.
В ходе тестирования программа работала исправно и никаких ошибок мы не заметили.
|