Управление окнами Windows из консоли
АрхивСистемаНебольшая по размерам, но внушительная по возможностям утилита командной строки Cmdow позволяет манипулировать окнами Windows, не прибегая к мыши.
Так уж повелось, что утилиты командной строки стали частыми гостями нашей рубрики "RTFM". Нельзя сказать, что это случайность, скорее, закономерность. Ведь консольные программы при своем действительно миниатюрном размере предоставляют пользователю куда большую гибкость в работе, нежели оснащенные цветастым графическим интерфейсом исполины. Это, во-первых. Во-вторых, ничто не мешает использовать их в составе CMD- или BAT-файлов, конструируя, тем самым, целые программные комплексы, настроенные на решение тех или иных, порой весьма нетривиальных задач. Наконец, в-третьих, в большинстве случаев они бесплатны, не требуют инсталляции, состоят из одного исполняемого файла и легко поддаются автоматизации при помощи любого планировщика задач Windows. Надеемся, приведенных критериев достаточно, чтобы без лишних слов приступить к обзору очередного приложения, не ускользнувшего от нашего пристального внимания.
Знакомьтесь, Cmdow - консольная утилита размером в 31 кб, включающая порядка 30 команд управления окнами приложений в операционных системах Windows NT4/2000/XP/2003 без использования мыши. Программа не требует установки и состоит всего из одного файла cmdow.exe, опции запуска которого разработчик разделил на четыре группы, в зависимости от области применения приложения. Рассмотрим их как можно более сжато.
1. Получение информации об окнах запущенных в системе программ
Формат команды: cmdow.exe [window | /T] [/B] [/F] [/P], где
- window - название окна или его идентификатор (дескриптор) в шестнадцатеричном формате. Если в имени есть пробел или фигурируют какие-либо управляющие символы, используются кавычки, например, "untitled - notepad". В случае отсутствия этой опции, Cmdow отобразит список всех окон, включая их составляющие элементы - кнопки, поля ввода и прочее (см. наглядный пример использования данной функции в конце материала)
- /T - ключ, заставляющий утилиту работать только с программами, присутствующими в панели задач Windows
- /B - наличие этой опции отключает отображение заголовков столбцов в выводимом листинге
- /F - вывод наиболее полной информации об окнах
- /P - отображение размеров окон и их координат на рабочем столе
Результатом использования cmdow.exe будет листинг, содержащий следующие восемь полей (см. скриншот):
- Handle - шестнадцатеричный дескриптор окна
- Lev - уровень окна Windows
- Pid - идентификатор процесса, породившего данное окно
- Window status - статус окна (активное, минимизированное, скрытое, развернутое и т.п.)
- Left, Top - координаты окна (выводятся только в случае использования ключей /F и /P)
- Width, Height - размер окна в пикселях (выводятся только в случае использования опций /F и /P)
- Image - название процесса, породившего данное окно
- Caption - название окна
Еще раз напомним, что просматривать результаты гораздо удобнее, если не выводить их на дисплей, а перенаправлять в текстовый файл инструкцией "> название файла". Например, команда cmdow.exe /T > info.txt выведет полученную утилитой информацию об окнах программ из панели задач в файл info.txt.
2. Выполнение групповых операций с окнами
Формат команды: cmdow.exe /TH | /TV | /CW | /MA | /UW | /AT | /FS | /WM, где
- /TH - меняет расположение окон на рабочем столе и расставляет их друг под другом сверху вниз. Эта инструкция полностью эквивалентна команде Tile Windows Horizontally контекстного меню панели задач
- /TV - аналогична предыдущей инструкции, только меняет расположение окон слева направо
- /CW - располагает окна каскадом и является подобием команды Cascade Windows контекстного меню панели задач
- /MA - сворачивает все открытые окна в панель задач
- /UW - восстанавливает прежний вид окон (тот же эффект достигается нажатием клавишной комбинации Win+Shift+M)
- /AT - переключает окна в порядке их расположения в панели задач
- /FS - переводит приложение в полноэкранный режим работы (аналог нажатия Alt+Enter на клавиатуре)
- /WM - отключает полноэкранный режим
3. Манипулирование отдельным окном
Формат команды: cmdow.exe window {[/ACT] [/INA] [/ENA] [/DIS] [/VIS] [/HID] [/MIN] [/MAX] [/RES] [/TOP] [/NOT] [/REN caption] [/MOV left top] [/SIZ width height] [/CLS] [/END]}, где
- Window - уже упомянутый нами ранее дескриптор окна, с которым утилита Cmdow будет производить различные действия в зависимости от указанных в команде ключей
- /ACT - делает активным заданное окно (выводит на передний план)
- /INA - деактивирует выбранное окно (смещает фокус на другое приложение)
- /DIS - делает выбранное окно невосприимчивым к действиям пользователя (само приложение при этом продолжает работать)
- /ENA - отключает предыдущую функцию и делает окно доступным для управления мышью
- /HID - прячет окно
- /VIS - делает ранее спрятанное окно вновь видимым
- /MIN - сворачивает окно в панель задач. Естественно, данная опция не всесильна, например, использовать ее для диалоговых окон тщетно
- /MAX - разворачивает окно на весь экран
- /TOP - располагает окно поверх остальных
- /NOT - снимает атрибут "Поверх всех окон" с указанного окна программы
- /REN caption - используется для переименования выбранного окна
- /MOV left top - перемещает окно в соответствии с новыми координатами
- /SIZ width height - изменяет размеры окна
- /CLS - закрывает окно (действие команды аналогично нажатию пользователем кнопки "Закрыть", присутствующей на любом окне Windows)
- /END - убивает процесс, ассоциированный с указанным окном. Последствия от данного ключа могут быть самыми разными, поэтому применять его следует очень осторожно
4. Запуск приложений при помощи Cmdow
Формат команды: cmdow.exe /RUN [state] file [args], где
- /RUN - обязательная опция, переключающая утилиту в режим запуска выбранных приложений
- state - параметры окна загружаемого приложения. Могут использоваться ключи /MIN, /MAX и /HID
- file - путь к файлу на диске для запуска
- args - аргументы, передаваемые загружаемой программе
Примеры использования Cmdow
Теперь, когда теория позади, самое время заняться практикой и рассмотреть несколько примеров, демонстрирующих использование утилиты Cmdow.
Например, нам необходимо просмотреть список ключей, воспринимаемых программой. Проще говоря, нам нужна справка к Cmdow. Делается это так:
cmdow.exe /?
В случае если наш интерес ограничивается приложениями, присутствующими в панели задач Windows, и мы хотим узнать про них всю системную подноготную, тогда используем команду:
cmdow.exe /T /F
Следующая инструкция выведет данные о только что открытом "Блокноте" и запишет их в файл notepad.txt:
cmdow.exe "untitled - notepad" > notepad.txt
Эта команда расположит все окна на рабочем столе горизонтально друг под другом:
cmdow.exe /TH
А эта переименует калькулятор в Computerra:
cmdow.exe calculator /REN Computerra
Следующий код заставит утилиту открыть развернутый на весь экран браузер Internet Explorer и загрузит в нем страницу "Компьютерры-Онлайн":
cmdow.exe /RUN /MAX iexplore www.computerra.ru
Любителям CMD-инструкций приводим на затравку два листинга. Первый переключает каждые пять секунд окна:
@echo off
:loop
cmdow /AT
ping 127.0.0.1 -n 5 >nul
goto :loop
Второй код, более интересный, загрузит калькулятор Windows и последовательно удалит из него все кнопки.
@echo off
start calc & ping 127.0.0.1 -n 2 >nul
for /f "tokens=1-2,8" %%a in ('cmdow') do (
if /i "%%c"=="calc" if "%%b"=="2" cmdow %%a /hid
)
Выглядеть это действо будет таким вот образом:
Не верите? Попробуйте!