Я хочу открыть окно консоли моего пакетного файла в определенном месте на экране. Я искал в Google, но не нашел решения для этого. Мне нужно четыре маленьких окна консоли, по одному в каждом углу экрана.
Как открыть окно консоли командного файла в определенном месте экрана
Ответы (1)
@echo off
setlocal
if /i "%~1" == "/4way" (
console4way "%~f0" %*
exit /b
)
echo Running %*
консоль4way
#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
. - Оставьте ввод Destination пустым, чтобы он компилировался в тот же каталог, что и скрипт. Должен быть выбран переключатель .exe.
- Установите флажок Компилировать для системы x64 для 64-битной компиляции.
- Нажмите кнопку Convert для компиляции.
- В том же каталоге у вас теперь должен быть файл
console4way.exe
.
console4way.exe
будет автономным исполняемым файлом, который можно запустить в ОС без установленного AutoIt.
Дополнительно:
Просмотрите справочную страницу о компиляции скриптов с помощью Aut2Exe.