Hur exekverar man en sökväg till en fil (exempelvis word-fil eller ett acrobat-dockument) med det program som Windows har assosierat till filens filtillägget från VB.NET. Eftersom att användaren själv lägger in sökvägen till filen (i mitt program)så kan den vara i godtykligt format. Motsvarande "Högerklick - Öppna" i Explorern. Tackar. Jag sökte lite men hittade inte det i något forum. Inte .NET men väl i VBStarta "fil" med assosierat program
/BennySv: Starta "fil" med assosierat program
Sv: Starta "fil" med assosierat program
Du kan använda funktionen ShellExecuteEx( sei As SHELLEXECUTEINFO).
Se MSDN länk http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecuteex.asp
Själv använder jag den något såhär
<code>
' -- i toppen av modulen deklarera följande --
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hWnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SW_SHOWNORMAL = 1
Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" (lpExecInfo As _
SHELLEXECUTEINFO) As Long
Private Const SE_ERR_FNF = 2
Private Const SE_ERR_NOASSOC = 31
Private Function OpenFile()
Dim sei As SHELLEXECUTEINFO
Dim retVal As Long
With sei
.cbSize = Len(sei)
.fMask = SEE_MASK_NOCLOSEPROCESS
.hWnd = formHwnd
.lpVerb = "open"
.lpFile = "c:/textdokument.txt"
.lpParameters = ""
.nShow = SW_SHOWNORMAL
End With
retVal = ShellExecuteEx(sei)
If retVal = 0 Then
' Ett fel uppstod.
Select Case sei.hInstApp
Case SE_ERR_FNF
'Filen kunde inte hittas.
Case SE_NOASSOC
'Inget program associerat med filen.
Case Else
'Ett okänt fel uppstod.
End Select
End If
End Function
</code>