private 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 LongPrivate Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Const SE_ERR_NOASSOC = 31Private Sub File1_DblClick() With File1 Dim Pathstr As String Pathstr = IIf(Right$(.Path, 1) <> "\", .Path & "\" & .FileName, .Path & .FileName) Dim v As Long v = ShellExecute(Me.hwnd, "OPEN", Pathstr, "", "", SW_SHOW) If v = SE_ERR_NOASSOC Then 'MsgBox "对不起,找不到打开这种文件" & Chr(13) & "的关联程序" & v, vbOKOnly + vbCritical, "资源管理器—打开文件" '时至2001/12/4 找不到打开某种文件的关联程序时,可起动打开方式程序来处理! Screen.MousePointer = 11 Dim lngRet As Long Dim strDir As String strDir = Space(260) lngRet = GetSystemDirectory(strDir, _ Len(strDir)) strDir = Left(strDir, lngRet) Call ShellExecute(GetDesktopWindow, vbNullString, "RUNDLL32.EXE", _ "shell32.dll,OpenAs_RunDLL " & strFile, strDir, vbNormalFocus) Screen.MousePointer = 0 End If End WithEnd Sub
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPrivate Const SE_ERR_NOASSOC = 31Private Sub File1_DblClick()
With File1
Dim Pathstr As String
Pathstr = IIf(Right$(.Path, 1) <> "\", .Path & "\" & .FileName, .Path & .FileName) Dim v As Long
v = ShellExecute(Me.hwnd, "OPEN", Pathstr, "", "", SW_SHOW)
If v = SE_ERR_NOASSOC Then 'MsgBox "对不起,找不到打开这种文件" & Chr(13) & "的关联程序" & v, vbOKOnly + vbCritical, "资源管理器—打开文件"
'时至2001/12/4 找不到打开某种文件的关联程序时,可起动打开方式程序来处理!
Screen.MousePointer = 11
Dim lngRet As Long
Dim strDir As String
strDir = Space(260)
lngRet = GetSystemDirectory(strDir, _
Len(strDir))
strDir = Left(strDir, lngRet)
Call ShellExecute(GetDesktopWindow, vbNullString, "RUNDLL32.EXE", _
"shell32.dll,OpenAs_RunDLL " & strFile, strDir, vbNormalFocus)
Screen.MousePointer = 0
End If
End WithEnd Sub
"shell32.dll,OpenAs_RunDLL " & strFile, strDir, vbNormalFocus)
改成:
Call ShellExecute(GetDesktopWindow, vbNullString, "RUNDLL32.EXE", _
"shell32.dll,OpenAs_RunDLL " & Pathstr, strDir, vbNormalFocus)
Private Sub File1_DblClick()
Shell ("d:\df.exe ") 'd:\df.exe 是你要执行的文件名,可以
'由Filelistbox的filename获得.
End Sub
Dim retv
retv = Shell(File1.Path & File1.FileName)
End Sub