Как я могу контролировать «состояние» окна (максимизировать, минимизировать, восстановить) с помощью скрипта powershell? - PullRequest
1 голос
/ 28 сентября 2010

Мне нужно иметь возможность запустить этот скрипт и развернуть его, если он еще не развернут.И восстановите окно, если это не так.Окно - это то, что в данный момент активно, поэтому не нужно получать конкретные (но бонусные баллы, если вы это сделаете) 8O)

Я планирую активировать его с помощью комбинации клавиш быстрого доступа.необходимо запустить под PS v1 (я знаю, я знаю, но у меня нет контроля над версией на работе).

Спасибо.

Уточнение: поскольку я не могу обновить PS до v2Я также не могу установить отдельные приложения.Есть ли способ сделать это с помощью собственных команд?

Ответы [ 3 ]

2 голосов
/ 28 сентября 2010

Set-WindowPosition - установить любой из (или все) сверху, слева, ширину, высоту окна ... или увеличить / свернуть / восстановить

Get-WindowPosition - получить позицию (фактически избыточную, поскольку объект Window имеет свою позицию как свойство)

http://wasp.codeplex.com/

0 голосов
/ 28 марта 2017

На всякий случай, если вы делаете это самостоятельно или на своем рабочем месте, вы можете использовать модули с открытым исходным кодом:

Я использовал модуль PowerShell UIAutomation (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")

Конечно, основные тэкауэй здесь:

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

И есть несколько вариантов получения окна ($ nextWin), включая Get-UiaActiveWindow

0 голосов
/ 30 сентября 2011

Это работает:

(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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...