Управление окнами windows из консоли

Захотелось мне как-то с окнами поиграться… Чтобы бегали они по монитору… Если быть точным - по нескольким мониторам…

Ну а, если уж совсем точным быть - чтобы несколько программ запускались в нескольких мониторах, и разворачивались на весь экран в этих мониторах… И чтоб всё это было без человеческого участия.. Ну или с минимальным… Зеленая кнопка. Одна. И не больше. :)

Маленькое “но”. Сохранение позиции, открытие программы в нужном мониторе (разворачивание на весь экран) и закрытие… не приводили к желаемому результату - После повторного запуска, программа все равно запускалась на “основном” мониторе…

Мониторы все расположены “горизонтально”.. То есть чисто теоретически задача должна свестись к смещению окна вправо на ширину монитора * (номер монитора-1) и разворачиванию на весь экран.

Недолгие поиски увенчались успехом. Утилита cmdow.exe позволяет кроме этих двух “оконных операций” производить еще более десятка управляющий и действий с окнами windows из консоли.

Опции запуска программы cmdow.exe разделены на четыре группы:

1. Получение информации об окнах
2. Групповые операции с окнами
3. Управление отдельным окном
4. Запуск приложений при помощи Cmdow

Краткий, но достаточный для работы “help” зашит в саму программу - ознакомиться с ним можно, выполнив программу с параметром:
cmdow.exe /?

CMDOW [window | /T] [/B] [/F] [/P]
CMDOW /TH | /TV | /MA | /CW | /UW | /AT | /FS | /WM
CMDOW window {[/ACT] [/INA] [/ENA] [/DIS] [/VIS] [/HID] [/MIN] [/MAX] [/RES]
[/TOP] [/NOT] [/REN caption] [/MOV left top] [/SIZ width height] [/CLS]
[/END]}
CMDOW /RUN [state] file [args]

window  List specified window (if omitted, all windows are listed).
/T      List windows only shown on the taskbar.
/B      List windows using bare format (no heading information).
/F      List windows showing full information (don't truncate any fields).
/P      List windows showing position and size (left, top, width and height).

/TH     Tile windows horizontally.    /TV     Tile windows vertically.
/MA     Minimize all windows.         /CW     Cascade windows.
/UW     Undo tile/minimize/cascade.   /AT     Intelligent [Alt]-[Tab]
/FS     Switch to full screen mode.   /WM     Switch to window mode.

/ACT    Activate specified window.    /INA    Inactivate specified window.
/ENA    Enable specified window.      /DIS    Disable specified window.
/VIS    Unhide specified window.      /HID    Hide specified window.
/MIN    Minimize specified window.    /MAX    Maximize specified window.
/RES    Restore specified window.     /REN    Rename specified window.
/TOP    Make window always on top.    /NOT    Make window not always on top.
/MOV    Move specified window.        /SIZ    Resize specified window.
/CLS    Close specified window.       /END    Kill process linked to window.

/RUN    Executes or opens specified file using associated application.
state   Initial show state of window (/MIN, /MAX or /HID). Default is normal.
args    Optional commandline arguments passed to launched application.

Specify a window by its caption (case insensitive) or handle in hex format.
The At symbol '@' may be used to refer to this window. For more help on any
parameter use CMDOW /?
<parameter>. Eg CMDOW /? /RUN or CMDOW /? window.</parameter>

Как и следовало ожидать, перемещение окна и увеличение на весь экран приводит к его разворачиванию в нужном мониторе:
start “Программа второго монитора”
ping 127.0.0.1 -n 3 >nul
cmdow.exe “Программа второго монитора” /MOV 1280 0
cmdow.exe “Программа второго монитора” /MAX
Пинг во второй строке выполняет функцию задержки - для запуска программы требуется некоторое время. Если CMDOW не найдет нужное окно, она выдаст ошибку в консоль, но выполнение дальнейших команд продолжится.
Поместив аналогичные строки для каждой программы в нехитрый bat-файл, получаем “Зеленую кнопку”, которая запускает и расставляет приложения по нескольким мониторам “на весь экран”.

Реклама для "поддержания штанов":

Метки: ,

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Комментарии (2) к записи “Управление окнами windows из консоли”

  1. Terr сообщает :

    Классная статья!

  2. Вова сообщает :

    Классно!
    я обычно прогу ultramon использовал для работы с несколькими мониторами. не помню где качал. а когда автоматом - супер.

Добавить комментарий