如何在屏幕的特定位置打开批处理文件控制台 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
:
使用安装程序:
- 下载 AutoIt3 并安装。
- 右键单击
console4way.au3
和 select
Compile Script (x64)
对于 64 位 OS,否则
Compile Script (x86)
表示 32 位 OS。
- 在同一目录中,您现在应该有一个
console4way.exe
.
或使用 zip:
- 下载 AutoIt3 并解压缩。
- 导航到
install\Aut2Exe
并执行 Aut2Exe.exe
。
如果在 64 位 OS 上,您可以改为执行 Aut2Exe_x64.exe
。
编译为 x86 或 x64 可执行文件的工作方式相同。
- Source 输入是
console4way.au3
. 的路径
- 将 Destination 输入留空,以便编译为
与脚本相同的目录。
.exe 单选按钮应该 selected.
- 选中 Compile for System x64 64 位编译复选框。
- 点击转换按钮进行编译。
- 在同一目录中,您现在应该有一个
console4way.exe
.
console4way.exe
将是一个独立的可执行文件,可以
在未安装 AutoIt 的 OS 上执行。
额外:
查看有关 Compiling Aut2Exe 脚本的帮助页面。
我想在屏幕上的特定位置打开批处理文件的控制台 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
:
使用安装程序:
- 下载 AutoIt3 并安装。
- 右键单击
console4way.au3
和 selectCompile Script (x64)
对于 64 位 OS,否则Compile Script (x86)
表示 32 位 OS。 - 在同一目录中,您现在应该有一个
console4way.exe
.
或使用 zip:
- 下载 AutoIt3 并解压缩。
- 导航到
install\Aut2Exe
并执行Aut2Exe.exe
。 如果在 64 位 OS 上,您可以改为执行Aut2Exe_x64.exe
。 编译为 x86 或 x64 可执行文件的工作方式相同。 - Source 输入是
console4way.au3
. 的路径
- 将 Destination 输入留空,以便编译为 与脚本相同的目录。 .exe 单选按钮应该 selected.
- 选中 Compile for System x64 64 位编译复选框。
- 点击转换按钮进行编译。
- 在同一目录中,您现在应该有一个
console4way.exe
.
console4way.exe
将是一个独立的可执行文件,可以
在未安装 AutoIt 的 OS 上执行。
额外:
查看有关 Compiling Aut2Exe 脚本的帮助页面。