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の問題だと思います。バージョン2のCTPをSTA(シングルスレッドアパートメント)モードで実行すると、適切なフォルダーが選択されます。ただし、シェルウィンドウの後ろにメニューが表示されます。

于 2008-10-19T19:53:58.350 に答える
0

参考までに、Windows フォーム関連の作業を検討している場合、PowerShell 用の Windows フォームを実行する製品が現在 1 つ出回っており (The Admin Script Editor )、Sapien はフォーム デザイナーに取り組んでいます( PowerScripting Podcastで発表)。スクリプトのこれらの問題のいくつかをスムーズにします。

于 2008-10-19T22:23:00.187 に答える