• ベストアンサー

ファイルの関連付け情報の取得

 Windows XP SP2 と Visual Studio 2005 です。  とある Application で、任意のファイルを選択させ、選択ファイルを関連付けられた App で開く事を考えています。  任意のファイルなので、使用される App は特定できません。そこで拡張子から関連 App の実行パスを取得できないか?、と考えました。 レジストリ情報の拡張子と同名の Key 内容を丹念にたどれば出来るだろう、という当たりはついているのですが、もっと簡単な方法はないでしょうか?。 (1) 関連 App の実行パスを取得する VB 機能があれば最高. (2) API しかなければ、APIで. (3) レジストリを読むしかない場合、どの Key を読めば良いかのアドバイスを. よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

System.Diagnostics.Process.Start("C:\sample.txt") とか、こんな感じのですか? 違っていたらすいません。

noname#221368
質問者

お礼

 おかげさまで、うまくいきました。VBの何かで出来たように記憶していたのですが、どうしても思い出せない状態でした。ありがとうございます。  こんな風になりました。以下、とあるプロシージャ内です。  Static InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop  Me.OpenFileDialog1.InitialDirectory = InitialDirectory  Dim ReturnId As DialogResult = Me.OpenFileDialog1.ShowDialog()  If ReturnId = Windows.Forms.DialogResult.Cancel Then   Exit Sub  Else   Dim TargetFile As String = Me.OpenFileDialog1.FileName   Dim Files() As String = Me.OpenFileDialog1.FileNames   Dim n As Integer = Files.GetUpperBound(0)   Dim Proc As New Process   InitialDirectory = GlobalUtility.FilePath(TargetFile)   For i As Integer = 0 To n    Proc.StartInfo.FileName = Files(i)    Proc.StartInfo.UseShellExecute = True    Proc.StartInfo.ErrorDialog = True    Process.Start(Proc.StartInfo)   Next i  End If

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんばんは。 他には、WSH を使う、ShellExecute API を使うとか。 Dim wsh As Object = CreateObject("WScript.Shell") wsh.run("C:\test.xls") wsh = Nothing

noname#221368
質問者

お礼

 回答ありがとうございます。昔々は、VBも機能貧弱で、CreateObject や API は嫌になるほど使ったものです。そのせいで、API 嫌いになりました。しかも 2005って、API Loader が、VB6 ほど手軽でないですよね(探してもいませんが・・・)。  すいません。愚痴になっちゃいました。

関連するQ&A