2

エクスプローラー シェルを使用してユーザーにファイル名を要求するプログラムによる方法を探しています。システム シェル拡張機能のみをロードしたいと考えています。

この機能を探している理由は、クラッシュやその他の非決定的な動作の原因として考えられるサードパーティのシェル拡張を排除したいからです。

理想的には、システムシェル拡張機能のみをロードするエクスプローラーインスタンスの「セーフモード」のようなものを意味する関数に渡すことができる、見逃したフラグがどこかにあります。これは非常に重要な機能のように思えます。私はかなりの時間を費やしてドキュメントを調べましたが、役に立ちませんでした。

CFileDialog、GetOpenFileName、および IFileOpenDialog の API ドキュメントを調べました。非システム シェル エクステンションのロードを防止する唯一の方法は、レジストリの操作またはソフトウェア ユーティリティを使用して何らかのグローバル ハッカーを実行することのようです。これらはどちらも、行儀の良いアプリにとって満足できるものではありません。

エクスプローラ ベースではない「古いスタイル」のファイル ダイアログを使用できることはわかっていますが、それを強制すると、ユーザーに殺されてしまいます。:)

これを回避する唯一の方法は、車輪を再発明して、エクスプローラーのようなファイルを開くダイアログを作成することです。

4

0 に答える 0