说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

无关联程序时开启“打开方式”窗口 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
无关联程序时开启“打开方式”窗口 -VB资料

在使用资源管理器时,双击一个未建立关联的文件, 就会出现一个打开方式窗口。 而在程序中使用 ShellExecute 打开文件时, 如果没有关联程序,也可以打开该窗口。
声明:
Declare Function GetDesktopWindow 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
Declare Function GetSystemDirectory Lib _
"kernel32" Alias "GetSystemDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long
Private Const SE_ERR_NOASSOC = 31
函数:
Public Sub ShellDoc(strFile As String)
Dim lngRet As Long
Dim strDir As String
lngRet = ShellExecute(GetDesktopWindow, _
"open", strFile, _
vbNullString, vbNullString, vbNormalFocus)
If lngRet = SE_ERR_NOASSOC Then
' 没有关联的程序
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)
End If
End Sub
使用:
OpenDoc "c:\aa.log"
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘