Ich hab das schon oft verwendet.
Hier noch was für's Errorhandling des Rückgabewertes:
If lRet < 32 Then
Select Case lRet
Case 2
strError = "File not found"
Case 3
strError = "Path not found"
Case 5
strError = "Access denied"
Case 8
strError = "Out of memory"
Case 11
strError = "Invalid EXE file or error in EXE image"
Case 26
strError = "A sharing violation occurred"
Case 27
strError = "Incomplete or invalid file association"
Case 28
strError = "DDE Time out"
Case 29
strError = "DDE transaction failed"
Case 30
strError = "DDE already busy"
Case 31
strError = "No association for this file extension"
Case 32
strError = "DLL not found"
Case Else
strError = "Error, details unknown."
End Select
End If
Hier noch ein MS-Link:
http://support.microsoft.com/default.aspx?scid=kb;en-us;170918