如何通过VB 2010中的文件的默认应用程序打开所选文件?

时间:2012-10-08 08:50:46

标签: vb.net

我有用VB 2010编写的Windows应用程序。在这里,用户可以从打开的对话框中选择任何文件。所以,我想在相应的应用程序中打开文件。例如,假设用户选择docx文件然后我必须打开文件使用msword,假设,如果是pdf文件,那么我必须使用adobe reader或可用的pdf阅读器(默认应用程序)打开。

这可能吗?

2 个答案:

答案 0 :(得分:10)

Shell和Windows API CreateProcess()用于启动可执行文件。 如果您正在加载文档/文件,那么这些文件/文件由ShellExecute()处理,并且可以使用Process.UseShellExecute属性在.NET中启动:

Private Function ShellExecute(ByVal File As String) As Boolean
  Dim myProcess As New Process
  myProcess.StartInfo.FileName = File
  myProcess.StartInfo.UseShellExecute = True
  myProcess.StartInfo.RedirectStandardOutput = False
  myProcess.Start()
  myProcess.Dispose()
End Function

取自the #VB wiki

答案 1 :(得分:8)

试试这个:

现在使用openfiledialog

Dim OpenFileDlg as new OpenFileDialog.

            OpenFileDlg.FileName = "" ' Default file name
            OpenFileDlg.DefaultExt = ".xlsx" ' Default file extension
            OpenFileDlg.Filter = "Excel Documents (*.XLSX)|*.XLSX"
            OpenFileDlg.Multiselect = True
            OpenFileDlg.RestoreDirectory = True
            ' Show open file dialog box
            Dim result? As Boolean = OpenFileDlg.ShowDialog()

            ' Process open file dialog box results
    for each path in OpenFileDlg.Filenames
      Try
                             System.Diagnostics.Process.Start(Path)

            Catch ex As Exception
                MsgBox("Unable to load the file. Maybe it was deleted?")
            End Try
            If result = True Then
                ' Open document
            Else
                  Exit Sub
            End If
    next

如果文件已通过操作系统注册,则此功能将起作用。使用Try catch,因为如果文件正在使用中,我可以抛出错误。 编辑:它始终使用默认应用程序。