- ベストアンサー
ファイルの関連付け情報の取得
Windows XP SP2 と Visual Studio 2005 です。 とある Application で、任意のファイルを選択させ、選択ファイルを関連付けられた App で開く事を考えています。 任意のファイルなので、使用される App は特定できません。そこで拡張子から関連 App の実行パスを取得できないか?、と考えました。 レジストリ情報の拡張子と同名の Key 内容を丹念にたどれば出来るだろう、という当たりはついているのですが、もっと簡単な方法はないでしょうか?。 (1) 関連 App の実行パスを取得する VB 機能があれば最高. (2) API しかなければ、APIで. (3) レジストリを読むしかない場合、どの Key を読めば良いかのアドバイスを. よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
System.Diagnostics.Process.Start("C:\sample.txt") とか、こんな感じのですか? 違っていたらすいません。
その他の回答 (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
質問者
お礼
回答ありがとうございます。昔々は、VBも機能貧弱で、CreateObject や API は嫌になるほど使ったものです。そのせいで、API 嫌いになりました。しかも 2005って、API Loader が、VB6 ほど手軽でないですよね(探してもいませんが・・・)。 すいません。愚痴になっちゃいました。
お礼
おかげさまで、うまくいきました。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