3

此问题类似,在运行以下代码后,浏览器对话框确实出现了所有正确的按钮,但缺少通常显示可用文件夹的选择区域:

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

3 回答 3

11

不久前我遇到了这个问题,并在 MSDN 论坛上找到了以下 COM 解决方法:

$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

于 2008-10-20T04:34:56.927 回答
3

我相信这是在 MTA 线程中运行的 PowerShell 的问题。您可以在 STA(单线程单元)模式下运行版本 2 的 CTP,它将拉出正确的文件夹选择。它确实将菜单拉到 shell 窗口后面。

于 2008-10-19T19:53:58.350 回答
0

仅供参考,如果您正在寻找做 Windows 窗体的东西,目前有一种产品可以为 PowerShell(管理脚本编辑器)做 Windows 窗体,而 Sapien 正在开发窗体设计器(在PowerScripting Podcast上宣布),这可能为您的脚本解决其中的一些问题。

于 2008-10-19T22:23:00.187 回答