@echo off
setlocal
if /i "%~1" == "/4way" (
console4way "%~f0" %*
exit /b
)
echo Running %*
console4way
#pragma compile(Out, console4way.exe)
Global $aPid[4]
; Run ComSpec (usually set as CMD) with arguments for the 1st instance.
$aPid[0] = Run('"' & @ComSpec & '" /k ' & StringReplace($CMDLINERAW, '/4way', '', 1))
For $i1 = 1 To 3
$aPid[$i1] = Run('"' & @ComSpec & '"')
Next
; Give time for all windows to display.
Sleep(500)
; Get list of all console class windows.
$aWinList = WinList('[CLASS:ConsoleWindowClass]')
For $i1 = 1 To UBound($aWinList) -1
; Get current window handle from the list.
$hWindow = $aWinList[$i1][1]
; Get position and sizes of current window.
$aPos = WinGetPos($hWindow)
; Move windows if process id matches.
Switch WinGetProcess($hWindow)
Case $aPid[0]
WinMove($hWindow, '', 0, 0)
Case $aPid[1]
WinMove($hWindow, '', @DesktopWidth - $aPos[2], 0)
Case $aPid[2]
WinMove($hWindow, '', 0, @DesktopHeight - $aPos[3])
Case $aPid[3]
WinMove($hWindow, '', @DesktopWidth - $aPos[2], @DesktopHeight - $aPos[3])
EndSwitch
Next
один пакетный файл кажется неспособным выполнить эту задачу без
внешняя помощь.
Вам может понадобиться что-то, что может обрабатывать 4 окна своими
ручки и переместить их в положение.
Возможно, 4 окна должны быть распознаны по идентификатору процесса
для обеспечения правильной обработки окон.
Код console4way
- AutoIt3.
Пакетный файл, если выполняется с /4way
в качестве 1-го аргумента,
выполнит console4way.exe. 4 консольных процесса
выполнить и короткий сон случится, чтобы позволить окнам
появляться.
WinList
получит окна консоли по классам.
Каждый дескриптор окна используется для получения позиции, размера и идентификатора процесса.
Поскольку каждый идентификатор процесса совпадает, текущее окно перемещается в
положение в углу рабочего стола, как указано.
Ширина и высота окон не указана.
WinMove
допускает еще 2 параметра для ширины и высоты.
$aPos[2]
и $aPos[3]
- ширина и высота
текущее окно консоли.
Выполнить командный файл с аргументом /4way
, чтобы
инициировать выполнение командного файла console4way
,
иначе он будет выполняться без console4way
.
Вы можете добавить дополнительные аргументы после аргумента /4way
если вы хотите передать аргументы в пакетный файл для использования.
Компиляция console4way.au3
в исполняемый файл для соответствия разрядности ОС
так что он выполняет ComSpec той же среды.
О console4way
console4way
- команда для выполнения console4way.exe
.
Вы можете иметь свой скрипт au3 с именем console4way.au3
(это текстовый файл, содержащий код выше).
Используйте файл сценария au3 для компиляции console4way.exe
с инструкциями.
После компиляции вам нужен только командный файл и
console4way.exe
быть на том же пути и выполнить
командный файл для тестирования.
Вы можете сохранить скрипт au3 и использовать его позже
если вы хотите снова скомпилировать или обновить код.
Инструкция по компиляции console4way.au3
:
с установщиком:
- Загрузите AutoIt3 и установите.
- Щелкните правой кнопкой мыши на
console4way.au3
и выберите
Compile Script (x64)
для 64-битной ОС, иначе
Compile Script (x86)
для 32-битной ОС.
- В том же каталоге у вас должна быть
console4way.exe
.
или с почтовым индексом:
- Скачать AutoIt3 и распаковать.
- Перейдите к
install\Aut2Exe
и выполните Aut2Exe.exe
.
Если в 64-битной ОС вы можете выполнить Aut2Exe_x64.exe
.
Либо будет работать одинаково для компиляции в x86 или в x64 исполняемый файл.
- Источник вход - это путь к
console4way.au3
.
- Оставить Пункт назначения ввод пустым, чтобы он компилировался в
тот же каталог, что и скрипт.
.exe переключатель должен быть выбран.
- Проверка Компиляция для системы x64 Флажок для 64-битной компиляции.
- Нажмите Преобразовать кнопку для компиляции.
- В том же каталоге у вас должна быть
console4way.exe
.
console4way.exe
будет автономным исполняемым файлом, который может
запускаться в ОС без установленного AutoIt.
Дополнительный :
Просмотр справочной страницы о Компиляции Скриптов с Aut2Exe.