Windowsの[ファイルを開く]の一般的なダイアログに、フォルダとともにインターネットショートカットが表示されるのは正しいです。この動作が存在する理由はわかりませんが、存在します。これは、Win32(メモ帳で確認してください)およびWinFormsアプリで発生します。
これを回避する方法はありますが、警告:ハッキーです!FileDialogクラスからカスタムファイルダイアログクラスを派生させると、FileDialogの操作のあらゆる側面をカスタマイズするために使用できるいくつかの保護されたイベントにアクセスできます。
Dino Espositoは、2003年11月にMSDN Magazineの記事を書き、この手法がどのように機能するかを示しています。この記事はMSDNサイトにはありませんが、ウェイバックマシンのアーカイブ(http://web.archive.org/web/20150117123625/http://msdn.microsoft.com/en-us/magazine )で入手できます。 /cc300434.aspx。
おそらく、ファイルダイアログのWndProcをフックまたはサブクラス化し、ファイルリストコントロールを手動で調べ、ショートカットであるエントリを識別し、Windowsメッセージをファイルリストコントロールに送信してそれらのアイテムを削除する必要があります。次に、そのリストの更新(ディレクトリの変更など)を監視し、フィルタリング操作を繰り返す必要があります。
これは大きなハックになりますが、それは可能です。
これが大変な作業であるか、ハッキングが多すぎる場合は、FileOkイベントを使用して、FileOkイベントCancel=true
のCancelEventHandlerから戻ることにより、ユーザーがショートカットを選択できないようにすることをお勧めします。