2014-01-10 1 views
1

У меня есть следующий простой Powershell скрипт:Открыть папку и разворачивать окно папки

ii E:\Source\Development\websites\example.com.au\root 
ii E:\Source\Development\websites\example.com.au 
ii E:\Source\Development\websites\example.com.au\css 
ii E:\Source\Development\websites\example.com.au\database 
ii E:\Source\Development\websites\example.com.au\js 

Однако, когда окно папки открыты, они часто не развернуты на всем экране. Мне нужно вручную щелкнуть по окну каждой папки, а затем выбрать «Максимизировать» в меню окна. Это раздражает скрипты, которые намного длиннее показанного примера (например, 20 плюс окна). Кто-нибудь знает, чтобы максимизировать эти окна папок с помощью powershell?

ответ

1

Используйте метод AppActivate, не забудьте отправить клавишу Enter, чтобы получить фокус, затем нажмите клавишу пробела X («% X»), чтобы увеличить.

$folder = "C:\Temp" 
ii $folder 
Start-Sleep -m 100 
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') 
[Microsoft.VisualBasic.Interaction]::AppActivate("$folder") 
Start-Sleep -m 100 
[void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') 
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}") 
[System.Windows.Forms.SendKeys]::SendWait("% X") 

Оберните петлю, и все готово.

+0

Это то, что я после. Он делает то, что мне нужно. Единственная небольшая проблема заключается в том, что это не чистое решение, так как при каждом открытии файла возникает ошибка исключения. - Сообщение об ошибке «Вызов исключения» AppActivate »с аргументом« 1 »:« Процесс »E: \ Source \ Development \ websites \ example.com.au \ root 'не найден." ' – AlexanderR

1

Вы можете использовать start-process вместо invoke-item, который даст вам контроль над размером окна. Вы можете осуществить это с miminmal изменения в сценарий по созданию II функции для переопределения псевдонима временно, а затем удалить его, когда вы сделали:

function ii { start-process explorer -WindowStyle Maximized -ArgumentList $args[0] } 
ii E:\Source\Development\websites\example.com.au\root 
ii E:\Source\Development\websites\example.com.au 
ii E:\Source\Development\websites\example.com.au\css 
ii E:\Source\Development\websites\example.com.au\database 
ii E:\Source\Development\websites\example.com.au\js 
Remove-Item function:ii 
+0

Это не работает , В первый раз, когда я запустил это, я получил окна с максимальным размером. Затем я сделал окна меньше, а затем закрыл их. Я снова запустил сценарий, но на этот раз окна не открывались максимум, а при установке последнего размера окна. – AlexanderR

Смежные вопросы