вызовите FolderBrowserDialog из powershell - PullRequest
3 голосов
/ 19 октября 2008

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

[void] [Reflection.Assembly]::LoadWithPartialName( 'System.Windows.Forms' )
$d = New-Object Windows.Forms.FolderBrowserDialog
$d.ShowDialog( )

Ответы [ 3 ]

11 голосов
/ 20 октября 2008

Я столкнулся с этой проблемой некоторое время назад и нашел следующий обходной путь COM на форумах MSDN:

$app = new-object -com Shell.Application
$folder = $app.BrowseForFolder(0, "Select Folder", 0, "C:\")
if ($folder.Self.Path -ne "") {write-host "You selected " $folder.Self.Path}

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.dotnet.framework.windowsforms.controls&tid=3607557a-43b3-40bf-8276-be00526e0520&p=1

3 голосов
/ 19 октября 2008

Я считаю, что это проблема с PowerShell, запущенным в потоке MTA. Вы можете запустить CTP версии 2 в режиме STA (однопотоковая квартира), и он выберет правильный выбор папки. Тем не менее, оно вытягивает меню за окном оболочки.

0 голосов
/ 20 октября 2008

Только к вашему сведению, если вы хотите заняться Windows Forms, в настоящее время есть один продукт, который будет создавать формы Windows для PowerShell ( Admin Script Editor ), а Sapien работает над Конструктор форм (анонсирован на PowerScripting Podcast ), что может сгладить некоторые из этих проблем для вашего сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...