2010-09-28 444 views
0

我需要能够运行此脚本,并使其最大化窗口,如果它是不是已经最大化。如果不是,则恢复窗口。窗口只是无论是当前的活动所以没有必要得到具体的(但加分,如果你这样做)80)如何使用powershell脚本控制窗口的“状态”(最大化,最小化,还原)?

我打算从快捷按键激活它。

它确实需要在PS V1运行(我知道,我知道,但我没有过的版本在工作中控制)。

谢谢。

澄清:既然不能更新PS到v2,我也不能安装不同的应用程序。有没有办法使用本机命令来做到这一点?

回答

2

集-WindowPosition - 设置上,左,宽度,窗口高度的任何一个(或全部)...或最大化/最小化/恢复

GET-WindowPosition - 获得位置(冗余种-的实际上,因为Window对象有它的位置作为一个属性)

http://wasp.codeplex.com/

+0

是的相当多的选择,那是我想起来的第一个想法 - 黄蜂:) – stej 2010-09-28 19:20:17

0

这工作:

(Get-Host).UI.RawUI 
$a = (Get-Host).UI.RawUI 
$a.BackgroundColor = "white" 
$a.ForegroundColor = "black" 

$size = (Get-Host).UI.RawUI.WindowSize 
$size.Width = 80 
$size.Height = 30 
(Get-Host).UI.RawUI.WindowSize = $size 

但这没有:

$position = (Get-Host).UI.RawUI.Windowposition 
$position.X = 0 
$position.Y = 30 
(Get-Host).UI.RawUI.Windowposition = $position 
0

万一你是你自己做这个或你的工作场所允许开源模块:

我用UIAutomation PowerShell的模块(http://uiautomation.codeplex.com/)。 这里是我的PowerShell脚本移动到另一个监视器(这需要进入正常和最大化模式)的窗口。

Start-Process Chrome  
##orient new chrome window in full screen on left monitor 
#get reference to new chrome window 
$nextWin = Get-UiaWindow -Name "*New Tab*" 
#transform window to "restore" mode (make sure window is not maximized) 
$nextWin.SetWindowVisualState("Normal") 
#move window to left monitor 
$nextWin.Move(-1920,0) 
#maximize window 
$nextWin.SetWindowVisualState("Maximize") 

当然这里主要takaways是:

$nextWin.SetWindowVisualState("Normal") 
$nextWin.SetWindowVisualState("Maximize") 
$nextWin.SetWindowVisualState("Minimize") 

而且还有用于获取一个窗口($ nextWin),包括获取-UiaActiveWindow

相关问题