5

私はVB 2010で書かれたWindowsアプリケーションを持っています。ここでは、ユーザーは開いているダイアログから任意のファイルを選択できます。したがって、対応するアプリケーションでファイルを開きたいと思います。たとえば、ユーザーがdocxファイルを選択すると、mswordを使用してファイルを開く必要があります。それがpdfファイルの場合、アドビリーダーまたは利用可能なpdfリーダー(デフォルトのアプリケーション)で開く必要があるとします。

これは可能ですか?

4

2 に答える 2

12

ShellおよびWindowsAPICreateProcess()は、実行可能ファイルを起動するためのものです。ドキュメント/ファイルをロードしている場合、これらはShellExecute().NETによって処理され、次のProcess.UseShellExecuteプロパティを使用して開始できます。

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

#VBwikiから取得。

于 2012-10-08T11:06:12.257 に答える
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

これは、ファイルが OS に登録されている場合に機能します。ファイルが使用中の場合はエラーがスローされる可能性があるため、Try catch を使用します。

編集:常にデフォルトのアプリケーションを使用します。

于 2012-10-08T09:00:55.140 に答える