如何在屏幕的特定位置打开批处理文件控制台 window

How to open batch file console window in a specific location of screen

我想在屏幕上的特定位置打开批处理文件的控制台 window。我在 Google 中搜索过,但没有找到解决方案。我需要四个小控制台 windows,屏幕的每个角落一个。

@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 windows 的东西 手柄并将它们移动到位。 4 windows 可能需要通过进程ID来识别 确保处理正确的 windows。

console4way的代码是AutoIt3。

批处理文件,如果以 /4way 作为第一个参数执行, 将执行 console4way.exe。 4个控制台进程将 执行并短暂休眠将允许 windows 出现。 WinList 将通过 class 获得控制台 windows。 每个 window 句柄用于获取位置、大小和进程 ID。 当每个进程 ID 匹配时,当前的 window 被移动到 指定的桌面一角位置。

未指定windows的宽度和高度。 WinMove 允许另外 2 个宽度和高度参数。 $aPos[2]$aPos[3] 是宽度和高度 当前控制台 window.

执行参数为/4way的批处理文件 启动批处理文件执行 console4way, 否则它将在没有 console4way 的情况下执行。 您可以在 /4way 参数之后添加更多参数 如果您想将参数传递给要使用的批处理文件。

console4way.au3 编译为可执行文件以匹配 OS 的位数 以便它执行相同环境的 ComSpec。


关于 console4way

console4way是执行console4way.exe的命令。 您可以将 au3 脚本命名为 console4way.au3 (这是一个包含上述代码的文本文件)。 使用au3脚本文件编译console4way.exe 提供说明。

编译完成后,只需要批处理文件和 console4way.exe在同一个路径下执行 要测试的批处理文件。 您可以存储 au3 脚本并在以后使用它 如果你想重新编译或更新代码。


编译说明console4way.au3:

使用安装程序:

  1. 下载 AutoIt3 并安装。
  2. 右键单击 console4way.au3 和 select Compile Script (x64) 对于 64 位 OS,否则 Compile Script (x86) 表示 32 位 OS。
  3. 在同一目录中,您现在应该有一个 console4way.exe.

或使用 zip:

  1. 下载 AutoIt3 并解压缩。
  2. 导航到 install\Aut2Exe 并执行 Aut2Exe.exe。 如果在 64 位 OS 上,您可以改为执行 Aut2Exe_x64.exe。 编译为 x86 或 x64 可执行文件的工作方式相同。
  3. Source 输入是 console4way.au3.
  4. 的路径
  5. Destination 输入留空,以便编译为 与脚本相同的目录。 .exe 单选按钮应该 selected.
  6. 选中 Compile for System x64 64 位编译复选框。
  7. 点击转换按钮进行编译。
  8. 在同一目录中,您现在应该有一个 console4way.exe.

console4way.exe 将是一个独立的可执行文件,可以 在未安装 AutoIt 的 OS 上执行。

额外:

查看有关 Compiling Aut2Exe 脚本的帮助页面。