'thanks to Rick Ratayczak of Future Works media
(rickr@execpc.com)
'save file and rename them to [name].BAS
'
'thanks to Martin Lansler who wrote:
'I'd just like to suggest that you pass
the VB5.0 predefined constant
vbNullString in the ShellExecute
'function in your VB5.0 Shell and URL examples, instead of the empty VB string "". Since API's are
written
'in c, they are
expecting a null-terminated string, otherwise strange things might occur.
Attribute VB_Name = "Shell_Execute"
Declare Function GetActiveWindow Lib "user32" () As Long
Declare Function ShellExecute Lib "shell32.dll" alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub RunFile(ByVal File$, FilePath$, RunStyle)
' SW_HIDE = 0
' SW_SHOWNORMAL = 1
' SW_NORMAL = 1
' SW_SHOWMINIMIZED = 2
' SW_SHOWMAXIMIZED = 3
' SW_MAXIMIZE = 3
' SW_SHOWNOACTIVATE = 4
' SW_SHOW = 5
' SW_MINIMIZE = 6
' SW_SHOWMINNOACTIVE = 7
' SW_SHOWNA = 8
' SW_RESTORE = 9
Const MB_ICONSTOP = 16
dim
temp, Msg As String
dim
x
temp = GetActiveWindow()
x = ShellExecute(temp, "Open", File$, vbNullString, FilePath$, RunStyle)
If x < 32 Then
Select Case x
Case 0
Msg = "The file could not be run due to insufficient system memory or a corrupt program file"
Case 2
Msg = "File Not Found"
Case 3
Msg = "Invalid Path"
Case 5
Msg = "Sharing or protection error"
Case 6
Msg = "Separate data segments are
required for each task "
Case 8
Msg = "Insufficient memory to run the program"
Case 10
Msg = "Incorrect Windows version"
Case 11
Msg = "Invalid Program File"
Case 12
Msg = "Program file requires a different operating System "
Case 13
Msg = "Program requires MS-DOS 4.0"
Case 14
Msg = "Unknown program file type"
Case 15
Msg = "Windows prgram does not support protected memory mode"
Case 16
Msg = "Invalid use of data segments when loading a second instance of a program"
Case 19
Msg = "Attempt to run a compressed program file"
Case 20
Msg = "Invalid dynamic link library"
Case 21
Msg = "Program requires Windows 32-bit extensions"
Case 31
Msg = "No application found for this file"
End Select
End If
End Sub
Return