トップ回答者
OpenFileDialogが異常終了してしまう

質問
-
OpenFileDialogからファイルを選択して処理するアプリケーションを作成中ですが、初期表示フォルダを「デスクトップ」、フィルタを全てのファイル(*.*)にした場合、ダイアログを開いた表示した直後にアプリケーションが終了してしまいます。
初期表示フォルダ、フィルタを他の値に設定した場合、ダイアログは正常表示されるのですが、画面から操作を行い表示フォルダを「デスクトップ」、ファイル名に*.*を入力するとやはりアプリケーションが終了してしまいます。
他の処理部分に問題があるのかと思い、ダイアログ表示部分のみを抽出してみたのですが、同じ結果となってしまいました。(文末に実行コード)
この現象は、デバッグモードでは発生せず、発行したアプリケーションをインストールした場合のみ発生します。
何か設定漏れなどは考えられるでしょうか? 回避策をご教示願います。
開発、実行環境は以下の通りです。
Windows XP Pro バージョン 5.1.2600 Service Pack 3 ビルド 2600
Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
Microsoft .NET Framework Version 3.5 SP1
Microsoft Visual Basic 2008 91908-152-0000043-60354
実行コードは以下の通りです。
新しいプロジェクトを開き、Formにボタンを1つ配置、後は下記の通りクリックイベントにコードを記述しただけで、他は何もしていません。
Public Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim openFileDialog1 As New OpenFileDialog() ' オープンダイアログ
Dim pstrInitialPath As String = Nothing
'
'-- チェック対象ファイルの選択
'
' 初期表示パス設定(初回選択時のみ)
If pstrInitialPath Is Nothing Then
pstrInitialPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
End If' ダイアログ設定
openFileDialog1.InitialDirectory = pstrInitialPath
openFileDialog1.Filter = "Text File(*.txt)|*.txt|Data File(*.dat)|*.dat|All Files(*.*)|*.*"
openFileDialog1.FilterIndex = 3
openFileDialog1.RestoreDirectory = False'
'-- ファイルが選択されなかった場合はExit
Try
If openFileDialog1.ShowDialog() <> DialogResult.OK Then
' リソースの開放
openFileDialog1 = Nothing
Exit Sub
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End TryEnd Sub
End Class
回答
-
デスクトップにいるファイル、あるいはアイコンが悪さをしているんじゃないでしょうか?
起きるPCと起きないPCの差を探してみて下さい。
有名なソフトの例で行くと、ウィルスバスターにそういった機能が搭載されているという話を聞いたことがあります。
http://hide.maruo.co.jp/news/news20090717.html (秀まるおさんのホームページ)
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク どらき 2009年7月27日 0:53
-
Azuleanさんありがとうございました、解決しました。
ご指摘の通りウィルスバスター2009が悪さしていました。
デスクトップを参照する際、ショートカットアイコンを表示するためにウィルスバスターのプログラムにアクセスすると
「不審な挙動」として検知され、強制終了させられていました。
・ウィルスバスターのショートカットアイコンを削除する。
・ウィルスバスターショートカットのアイコンをウィルスバスター以外から取得するように変更する。
・Azuleanさんに教えていただいた、(秀まるおさんのホームページ)に記載されているように設定を変更する。
上記にいづれかで回避することができました。- 回答としてマーク どらき 2009年7月27日 0:54
すべての返信
-
異常終了の際にどのようなメッセージが出ているのでしょうか?
#とりあえず私の環境では再現しませんでした。
Windows Visata Ultimate ビルド 6001: Service Pack 1
Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1
インストールされている Edition: Enterprise
Microsoft Visual Basic 2008 92030-270-6012766-60609
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/ -
デスクトップにいるファイル、あるいはアイコンが悪さをしているんじゃないでしょうか?
起きるPCと起きないPCの差を探してみて下さい。
有名なソフトの例で行くと、ウィルスバスターにそういった機能が搭載されているという話を聞いたことがあります。
http://hide.maruo.co.jp/news/news20090717.html (秀まるおさんのホームページ)
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク どらき 2009年7月27日 0:53
-
Azuleanさんありがとうございました、解決しました。
ご指摘の通りウィルスバスター2009が悪さしていました。
デスクトップを参照する際、ショートカットアイコンを表示するためにウィルスバスターのプログラムにアクセスすると
「不審な挙動」として検知され、強制終了させられていました。
・ウィルスバスターのショートカットアイコンを削除する。
・ウィルスバスターショートカットのアイコンをウィルスバスター以外から取得するように変更する。
・Azuleanさんに教えていただいた、(秀まるおさんのホームページ)に記載されているように設定を変更する。
上記にいづれかで回避することができました。- 回答としてマーク どらき 2009年7月27日 0:54