' *** Placera följande kod i Form1 ***
Private Sub Command1_Click()
Dim sei As SHELLEXECUTEINFO 'Struktur som funktionen behöver
Dim retval As Long ' retur värde
' Se till att det finns en C:\readme.txt eller ändra
' Ladda in information om C:\readme.txt till strukturen
With sei
' Strukturens storlek
.cbSize = Len(sei)
'Använd det optionala hProcess elementet för strukturen.
.fMask = SEE_MASK_NOCLOSEPROCESS
' Handler (handtag) för "window" som anropar funktionen .
.hwnd = Form1.hwnd
' Åtgärd för att öppna filen
.lpVerb = "open"
' Filen som skall öppnas.
.lpFile = "C:\readme.txt"
' Här behövs ingen parameter .
.lpParameters = ""
' Default katalog,behövs egentligen inte i detta exempel.
.lpDirectory = "C:\"
' Visa fönstret i Normalstorlek.
.nShow = SW_SHOWNORMAL
' De andra elementen i strukturen används inte eller så
' valideras dom när funktionen returnerar
End With
' Öppna filen med det associerade programmet.
retval = ShellExecuteEx(sei)
If retval = 0 Then
' Ett fel uppstod. Du kan använda Err.LastDllError
' om du hellre vill göra det..
Select Case sei.hInstApp
Case SE_ERR_FNF
Debug.Print "Filen C:\readme.txt kunde inte hittas."
Case SE_NOASSOC
Debug.Print "Inget program associerat med *.txt fil."
Case Else
Debug.Print "Ett okänt fel uppstod."
End Select
Else 'retval
' Vänta på att processen som öppnar vårt exempel C:\readme.txt .
' skall bli färdig.När detta är klart kommer VB att fortsätta med det
' som kommer efter anropet till funktionen.DoEvents tillåter dig att
' göra något annat under tiden.
Do
DoEvents
retval = WaitForSingleObject(sei.hProcess, 0)
Loop While retval = WAIT_TIMEOUT
Debug.Print "Notepad (eller programmet som öppnades) är klar med sin uppgift."
End If
End Sub