我目前正在尝试通过批处理文件打开两个窗口,然后调整它们的大小并移动它们(分屏)。打开单独的窗口很容易:
@echo off
cd "C:\Program Files (x86)\Internet Explorer"
start iexplore.exe
cd "C:\Program Files (x86)\Mozilla Firefox"
start firefox.exe
exit
但我找不到调整大小和移动我打开的窗口的方法。我宁愿不必使用任何第三方程序。我尝试浏览start /?
帮助菜单,不相信任何选项对我有用。
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>start /?
Starts a separate window to run a specified program or command.
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
"title" Title to display in window title bar.
path Starting directory.
B Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application.
I The new environment will be the original environment passed
to the cmd.exe and not the current environment.
MIN Start window minimized.
MAX Start window maximized.
SEPARATE Start 16-bit Windows program in separate memory space.
SHARED Start 16-bit Windows program in shared memory space.
LOW Start application in the IDLE priority class.
NORMAL Start application in the NORMAL priority class.
HIGH Start application in the HIGH priority class.
REALTIME Start application in the REALTIME priority class.
Press any key to continue . . .
如果您安装了 PowerShell(您可能已经安装了),则可以使用 user32.dll 来移动和调整窗口。曾几何时,我需要一个能够完全满足您需求的工作脚本,我发现this https://gist.github.com/coldnebo/1148334并调整它以满足我的需要。然后我用了this http://www.dostips.com/forum/viewtopic.php?p=37780#p37780将其转换为批处理/powershell 混合格式,这样我只需双击该文件即可运行 PowerShell 脚本。
<# :
:: Based on https://gist.github.com/coldnebo/1148334
:: Converted to a batch/powershell hybrid via http://www.dostips.com/forum/viewtopic.php?p=37780#p37780
@echo off
setlocal
cls
set "POWERSHELL_BAT_ARGS=%*"
if defined POWERSHELL_BAT_ARGS set "POWERSHELL_BAT_ARGS=%POWERSHELL_BAT_ARGS:"=\"%"
endlocal & powershell -NoLogo -NoProfile -Command "$_ = $input; Invoke-Expression $( '$input = $_; $_ = \"\"; $args = @( &{ $args } %POWERSHELL_BAT_ARGS% );' + [String]::Join( [char]10, $( Get-Content \"%~f0\" ) ) )"
goto :EOF
#>
# Add the relevant section of the Win32 API to the PowerShell session
# Allows windows to be moved and resized
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Win32 {
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
}
"@
################################################################################
# Moves and resizes the window based the broswer
#
# Arguments: $browser - the browser being moved and resized
# Returns: None
################################################################################
Function MoveAndResize ($browser)
{
# $browser_path is the full path to the browser
# $screen_x is the horizontal location of the window on the screen
# $screen_y is the vertical location of the window on the screen
# $win_x is the width of the target window
# $win_y is the height of the target window
Switch($browser){
InternetExplorer{
$browser_path="C:\Program Files\Internet Explorer\IEXPLORE.EXE"
$screen_x = 0
$screen_y = 0
$win_x = 960
$win_y = 1080
break
}
Firefox{
$browser_path="C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
$screen_x = 960
$screen_y = 0
$win_x = 960
$win_y = 1080
break
}
default {continue}
}
# Start the desired browser
Start-Process $browser_path
# Wait one second until the browser is fully loaded
Start-Sleep -S 1
# Find the running process where the application path matches $browser_path
$browser = (Get-Process | where {$_.Path -eq $browser_path}).MainWindowHandle
[Win32]::MoveWindow($browser, $screen_x, $screen_y, $win_x, $win_y, $true)
}
MoveAndResize "InternetExplorer"
MoveAndResize "Firefox"
请注意,我正在使用Program Files
iexplore 版本而不是Program Files (x86)
版本,因为该版本由于某种原因不会移动或调整大小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)