Shell関数で起動できなかったらメッセージを表示するには?


D  2004-06-07 22:36:15  No: 83863

超初心者です。
どなたか教えてください。

vb .net2003で、shell関数で指定したファイルを起動できなかった時に、メッセージを表示したいです。
ヘルプを見たら、例外/エラーの欄にFileNotFoundException というそれらしきものがあるのですが、どう記述したらいいのかわかりません。ネットで検索してもJAVAばかりがひっかかります。

どなたか教えてください!
宜しくお願いします!


ei  2004-06-07 23:21:56  No: 83864

Try
    Shell("c:\test.exe")
Catch ex As System.IO.FileNotFoundException
    MsgBox(ex.Message)
End Try
で出来ると思います。

このエラーはファイルが存在しない場合のエラーですので、
他のエラーが発生した場合の事も考慮もした方がいいと思いますよ。


D  2004-06-07 23:54:21  No: 83865

eiさん、ありがとうございます。

でも…実行してみたらcatchのところにひっかかってくれませんでした。
「ファイルが見つかりません。パス及びファイル名が正しいか、必要なライブラリがすべて利用可能かどうか、確認してください。」
というメッセージがでます。
ちゃんと存在するファイルを指定して実行するとうまくいきます。

開こうとしているファイルはpdfです。だからでしょうか?

それとも何か他に必要な記述があるのでしょうか。。。

度々すみませんが、宜しくお願いします!


魔界の仮面弁士  2004-06-08 00:29:26  No: 83866

関連付け起動を行いたい場合は、Shell関数の替わりに、System.Diagnostics.ProcessクラスのStartメソッドを使ってみて下さい。

> 開こうとしているファイルはpdfです。だからでしょうか?
だからでしょう。Shell関数は、exeファイルなどの「実行可能プログラム」を起動するための物です。文書ファイルを開くための物ではありません。
もし、PDFをShell関数で開くのであれば、Acrobat Readerのパスを指定して、そこにPDFを渡すようにコーディングする必要があります。


ei  2004-06-08 00:38:56  No: 83867

仮にShell関数で開く場合は
魔界の仮面弁士さんが、おっしゃってる様に
Shell("Acrobat Readerのパス ファイルパス")と実行しますが、
ファイルが存在しない場合のエラー等は、
Acrobat Reader側でエラーとなりますので
If System.IO.File.Exists("ファイルパス") = False Then
   MsgBox("ファイルが存在しません。)
Else
   起動処理
End If
でファイルの存在チェックを行ってください。


D  2004-06-08 01:03:20  No: 83868

魔界の仮面弁士さん、ありがとうございます!

System.Diagnostics.ProcessクラスのStartメソッド
を使ったらできました!

ただ以前は、shell("cmd.exe /c start " & ファイル名)とやっていたようで、これだと環境変数のPATH以下にファイルを置けばファイル名を渡すだけで開けるんですよね?System.Diagnostics.ProcessクラスのStartメソッドはフルパスしかできないのでしょうか?フルパスでもいいのですが、ちょっとできるのかな〜?と疑問に思いまして。

新たに質問してしまってすみません。
どなたか教えていただければ幸いです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加