- - PR -
例外ダイアログを表示しない方法
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-08 12:01
初歩的な質問かもしれないのですが、例外が発生した後に表示される
ダイアログを表示させない方法をご存知のかたがおられたら教えて 頂けないでしょうか? やりたいこととしましては、共有フォルダにアクセスして、「デバイスが 準備できていません」みたいな標準エラー出力を取り込みたいのですが、 ダイアログが出てきてほしくないのです。。 環境はVB.NET2002, Windows2000です。 よろしくお願いします〜。 Sub Main() Dim strMsg1, strUnc As String 'UNCパスを取得する strMsg1 = "ファイル名を入力:" Console.WriteLine(strMsg1) strUnc = Console.ReadLine() Dim myProcess As New Process() Dim myProcessStartInfo As New ProcessStartInfo(strUnc) myProcessStartInfo.UseShellExecute = False myProcessStartInfo.RedirectStandardError = True myProcessStartInfo.CreateNoWindow = True myProcess.StartInfo = myProcessStartInfo Try myProcess.Start() Catch Dim myStreamReader As StreamReader = myProcess.StandardError '標準エラーをコンソールに出力 Console.WriteLine(myStreamReader.ReadLine()) End Try myProcess.Close() End Sub | ||||
|
投稿日時: 2004-06-08 15:39
SetErrorMode() API を P/INVOKE すればいいのかな? | ||||
|
投稿日時: 2004-06-08 17:22
ご回答ありがとうございます!!
教えて頂いたことをしようとして、 Public Const SEM_FAILCRITICALERRORS = &H1& Public Const SEM_NOOPENFILEERRORBOX = &H8000& Declare Function SetErrorMode Lib "kernel32" ( _ ByVal wMode As Long) As Long のような宣言を書いて SetErrorMode(SEM_NOOPENFILEERRORBOX) としてみたのですが、同じ結果になってしまいました。。 INVOKEというのを知らなかったのですが、何か大きな間違いを してるんでしょうか? 実行するとJITの「デバッグしますか」といった画面が表示されます・・・ 初心者なもので正直よくわかっておりません。。 ご教授お願いいたします。 | ||||
|
投稿日時: 2004-06-08 20:12
エラーってどこで起きてます?
もしかして、そのエラーが起きている場所そのものがTry〜Catchで 囲まれてないんじゃないか、と思うのですが。。。 | ||||
|
投稿日時: 2004-06-08 22:03
VB.NET のバヤイ、Long ではなく Integer だったかも。 あと、"kernel32" は "kernel32.dll" かも。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-06-08 22:34
小野さん、渋木さんありがとうございます!
もしかして何かおかしいことやらかしてます・・・? エラーは Process.Start() のところで起こってます。 ご指摘いただいた点、try〜catch構文を外したのと 渋木さんのおっしゃっている点を直してみましたが 変化ありませんでした(>_<) かなり煮詰まってまいりました・・。 でも返答いただいた方本当にありがとうございます。 まだ何かヒントあるようでしたらご助言ください。。 デバッグのダイアログがでなくなればよいのですが・・・ | ||||
|
投稿日時: 2004-06-08 23:17
実際に無いファイルを指定した場合等、Process.Start()でも例外は起きますが、問題はそこではないのでは?
StartしていないProcessのStandardErrorが取れないようですけど。 >「デバッグしますか」といった画面が表示されます・・・ その後にメッセージが出てませんか? exeをダブルクリックで起動した場合は一瞬しか見えないでしょうが。 コマンドプロンプトからexeを実行してみてください。 | ||||
|
投稿日時: 2004-06-09 01:18
どっちのプロセスでエラーが起きてるんですか? 子プロセスの例外を、親プロセスでハンドルすることはできないですよ。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ |
1|2|3|4
次のページへ»