2010-09-28 447 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

相關問題