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

时间:2018-11-01 21:33:15

标签: windows batch-file cmd windows-console

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

1 个答案:

答案 0 :(得分:2)

@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个窗口的东西 处理并将其移动到位置。 可能需要通过进程ID识别4个窗口 以确保正确的窗口得到处理。

console4way的代码是AutoIt3。

如果以/4way作为第一个参数执行该批处理文件, 将执行console4way.exe。 4个控制台进程将 执行,短暂的睡眠将发生,以允许窗户 出现。 WinList将按类获取控制台窗口。 每个窗口句柄用于获取位置,大小和进程ID。 随着每个进程ID的匹配,当前窗口将移至 指定位置在桌面一角。

未指定窗口的宽度和高度。 WinMove允许另外两个宽度和高度参数。 $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的操作系统上执行。

其他

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