Как открыть окно консоли командного файла в определенном месте экрана - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу открыть окно консоли моего пакетного файла в определенном месте на экране. Я искал в Google, но я не нашел решения для этого. Мне нужно четыре маленьких консольных окна, по одному в каждом углу экрана.

1 Ответ

0 голосов
/ 02 ноября 2018
@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:

с установщиком:

  1. Загрузите AutoIt3 и установите.
  2. Щелкните правой кнопкой мыши на console4way.au3 и выберите Compile Script (x64) для 64-битной ОС, иначе Compile Script (x86) для 32-битной ОС.
  3. В том же каталоге у вас должна быть console4way.exe.

или с почтовым индексом:

  1. Скачать AutoIt3 и распаковать.
  2. Перейдите к install\Aut2Exe и выполните Aut2Exe.exe. Если в 64-битной ОС вы можете выполнить Aut2Exe_x64.exe. Либо будет работать одинаково для компиляции в x86 или в x64 исполняемый файл.
  3. Источник вход - это путь к console4way.au3.
  4. Оставить Пункт назначения ввод пустым, чтобы он компилировался в тот же каталог, что и скрипт. .exe переключатель должен быть выбран.
  5. Проверка Компиляция для системы x64 Флажок для 64-битной компиляции.
  6. Нажмите Преобразовать кнопку для компиляции.
  7. В том же каталоге у вас должна быть console4way.exe.

console4way.exe будет автономным исполняемым файлом, который может запускаться в ОС без установленного AutoIt.

Дополнительный :

Просмотр справочной страницы о Компиляции Скриптов с Aut2Exe.

...