2016-05-11 21 views
1

私はOpenFileDialogを使って、ユーザがフォルダからファイルを選択できるようにしました。しかし、SYSTEMアカウントでプロセスを実行しているので、実際のユーザーではなくSYSTEMアカウントのフォルダ(ホーム、ドキュメント、画像など)のみが表示されます。OpenFileDialogを作る方法他のユーザのホームフォルダを表示

特定のユーザーのフォルダを表示するために、SYSTEMプロセスでOpenFileDialogを作成するにはどうすればよいですか?

ありがとうございました。

+0

正しい質問は、なぜシステムアカウントで実行する必要がありますか? –

+1

ファイルダイアログを処理するためにワーカースレッドを作成し、他のユーザーのコンテキストで他のスレッドを実行させるために偽装を使用することができます。 – CherryDT

+0

次に、スレッドをUIコントロールで渡していますが、これは一般的には良い考えではありませんが、一般的なダイアログにどのように影響するかに関心があります。 – Lloyd

答えて

0

次の例のように、カスタムの場所を使用して試みることができる:あなたは、これはあなたが特別なフォルダを追加することができます後者で、パスまたはGUIDを指定することができ

openDlg.CustomPlaces.Add("C:\\Users\\User"); 

には、有効なGUID hereのリストを見つけることができ、しかし、これらはしばしばアカウントに結びついているので、この例ではあなたを助けません。

私は残念なことにユーザーのフォルダを自分で作成しなければならないと思います。

AutoUpgradeEnabledも有効にしてください。

MSDNにカスタムプレイスについて詳しく読むことができます。

+0

ありがとう@ロイド。しかし、OpenFileDialogを通常のプロセスのように動作させる方法がありますか(私は普通のユーザーがそれを使っているのと同じですが)、いくつかのカスタムパスに限られていませんか? –

+0

簡単にはありませんが、あなたが実行するスレッドで遊んでみることをお勧めしますが、その方向の痛みしか見ません。実際には、必要なユーザーのコンテキストで実行するだけです。 – Lloyd

関連する問題