9

標準のシステムでファイルを開くダイアログを自分が作成したダイアログに置き換えたいのですが、ファイルを開いているプログラムに関係なく、標準のダイアログの代わりにダイアログが表示されますが、これは可能ですか?

これを実現するために提供されているそのようなAPIはないようですが、フック技術を使用することは可能ですか?しかし、これは信頼性が高く、ウイルス対策ツールによってスパイウェアとして扱われないようにする必要がありますか?

他のオプションはありますか?

これが不可能な場合は、標準のファイルを開くダイアログのスペースバーまたはツールバーに、ダイアログを呼び出すボタンを追加できます。これにより、ユーザーはファイルを選択し、選択したファイルのパスを「ファイル名」に戻すことができます。 「標準ダイアログの入力ボックス?

ヒット、リンク、コード例をいただければ幸いです。

4

2 に答える 2

4

Vista から、FileOpen/FileSave ダイアログは「共通項目ダイアログ」になりました。IFileOpenDialog と IFileSaveDialog は、公開された 2 つの実装です。

これらは既知の CLSID を持つ単なる COM オブジェクトであるため、CLSID を使用して再登録することでそれらを置き換えるだけで済む場合があります。そのようなことを試したことはありません。あらゆる種類の警報ベルが鳴る可能性があります。

Vista より前のファイル ダイアログはprocessでフックできますが、グローバル フックまたは同等のものについては何も知りませんでした。

于 2009-06-10T20:27:16.957 に答える