2010-12-12 13 views
3

ファイルを開くダイアログのInitialDirectoryプロパティを設定せずに、Vistaのファイルを開くダイアログで使用する初期ディレクトリを設定または取得する方法はありますか?.net windows api:ファイルを開くダイアログで使用する最新のディレクトリを取得または設定する

私のWPFが(起動時に)すべての[開く/保存]ダイアログに対してデフォルトのフォルダを一度設定するようにします。マシンが稼働している限りVistaに気付いた場合、ダイアログボックスとして開いたり保存したりするファイルからユーザの最後に選択したディレクトリを追跡/追跡し続けます。メモ帳やプログラムはこのように動作します。

私がこれを達成しようとしている理由は、私のアプリケーション内でそれを追跡したり、フォルダを保存したり保存したりしたくないからです。私はちょうどデフォルトを設定して、Vistaがそれを追跡するようにしたいと思う。

Directory.SetCurrentDirectoryは行いません。

答えて

3

あなたの問題を解決するために必要な作業は除きます。 InitialDirectoryを設定しない場合、ダイアログには最後に使用されたディレクトリが使用されます。この情報はレジストリに格納され、プロセス名でインデックスされます。この動作を選択的にオフにすることはできません。

使用されているレジストリキーがWindows版で変更されています。 Win7では、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ComDlg32 \ LastVisitedPidlMRUとなっていると思います。これまでのバージョンで使用されていたように、もはや平文ではありません。ここにリストされているキー値を解析しようとする危険がある場合は、Windowsのバージョンを確認してください。率直に言って、これはInitialDirectoryプロパティを初期化するために書かなければならない単純なコードの価値がありません。

0

OpenFileDialogのロードと保存のためにコードを書く必要がない場合は、これを行うラッパー関数を記述し、ラッパー関数を呼び出してください。

関連する問題