2012-11-27 3 views
7

私のコードでは、実行ファイルop.exeがアプリケーション実行パスディレクトリにあるかどうかを確認します。そうでない場合は、MsgBoxと表示され、アプリケーションを終了します。問題は、実際にアプリケーションを終了しないということです。コードは毎回実行されます。ここでコードの実行を完全に停止してアプリケーションを終了するにはどうすればいいですか?

は私が話しているコードです:

If Not File.Exists("op.exe") Then 
     MsgBox("op.exe not found!", MsgBoxStyle.Critical, "Error") 
     Application.Exit() 
    End If 
    IO.Directory.CreateDirectory('files') 

のMsgBoxが表示され、アプリケーションが終了していますが、それは後で(IO.Directory.CreateDirectory('files'))をディレクトリfilesを作成しています。私はそれを望んでいない、と私は完全にMsgBoxを表示した後、アプリケーションを終了したいと思います。

どうすればいいですか?

+3

代わりに 'Environment.Exit(0)'を試してください。 – prprcupofcoffee

+0

そして、そのようなFile.Exists()は使わないでください。ファイルを開くか使用してみて、失敗した場合は例外を処理してください。また、CreateDirectory()呼び出しのために 'Else'ブロックを追加することもできます。 –

+0

@Davidありがとう - それは働いた。 – Scott

答えて

18

代わりにEnvironment.Exit(0)を試してください。 Application.Exitはメッセージループを終了させますが、それはメッセージループがそのキューから「終了」メッセージを読み取ることによって発生します。 Environment.Exitはプロセス自体を終了させます。

関連する問題