VB ShellExecute 函数应用


ShellExecute
声明:
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 Long
原型:
HINSTANCE ShellExecute(
  HWND hwnd,          //父窗口句柄
   LPCTSTR lpOperation,     //操作,"open","print","explore"
  LPCTSTR lpFile,       //文件名,前面可加途径
  LPCTSTR lpParameters,    //参数
   LPCTSTR lpDirectory,     //默认文件夹
  INT nShowCmd         //显示方式
);
打开一个应用法式
ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );

ShellExecute(this->m_hWnd,"open","notepad.exe","c:MyLog.log","",SW_SHOW );
打开一个同系统法式相关连的文档
ShellExecute(this->m_hWnd,"open","c:abc.txt","","",SW_SHOW );
激活相关法式,发送EMAIL
ShellExecute(this->m_hWnd,"open","","","", SW_SHOW );
打开文件夹
ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL)
用系统打印机打印文档
ShellExecute(this->m_hWnd,"print","c:abc.txt","","", SW_HIDE);
本函数还可以用来连接到网页,照下面写就好了:
ShellExecute 0&, vbNullString, "", vbNullString, vbNullString, vbNormalFocus
  或者这样写来发送Email:
ShellExecute me.hwnd, "open", "", vbNullString, vbNullString, SW_SHOW
另外有ShellExecute的替代用法,加倍简单实用,不用API,一句Shell搞定!
连接到网页:
  Shell "rundll32.exe url.dll,FileProtocolHandler "
打开文件:
  Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "SHELLTST.TXT"
ShellExecute API应用整理
作者: yanek
1. 执行“打开”,“查找”,“资源管理器”和“打印”
必要的声明:
’ nShowCmd
Public Const SW_HIDE = 0
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_MAXIMIZE = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNA = 8
Public Const SW_RESTORE = 9
’ Error Code
Public Const ERROR_FILE_NOT_FOUND = 2
Public Const ERROR_PATH_NOT_FOUND = 3
Public Const ERROR_BAD_FORMAT = 11
Public Const SE_ERR_FNF = 2
Public Const SE_ERR_PNF = 3
Public Const SE_ERR_ACCESSDENIED = 5
Public Const SE_ERR_OOM = 8
Public Const SE_ERR_SHARE = 26
Public Const SE_ERR_ASSOCINCOMPLETE = 27
Public Const SE_ERR_DDETIMEOUT = 28
Public Const SE_ERR_DDEFAIL = 29
Public Const SE_ERR_DDEBUSY = 30
Public Const SE_ERR_NOASSOC = 31
Public Const SE_ERR_DLLNOTFOUND = 32
Public 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
 
“打开“操作
ShellExecute Me.hwnd, "open", _
Text1.Text, _
vbNullString, vbNullString, _
SW_SHOWNORMAL
“查找“操作
ShellExecute Me.hwnd, "find", _
LocalDir, _
vbNullString, vbNullString, _
SW_SHOWNORMAL
“打印“操作
ShellExecute Me.hwnd, "print", _
Text1.Text, _
vbNullString, vbNullString, _
SW_SHOWNORMAL
“资源管理器“
ShellExecute Me.hwnd, "explore", _
LocalDir, _
vbNullString, vbNullString, _
SW_SHOWNORMAL
打开“我的文档“
ShellExecute Me.hwnd, _
"open", "explorer", _
vbNullString, vbNullString, _
SW_SHOWNORMAL
打开“我的电脑“
’ 我的电脑
’ HKEY_CLASSES_ROOTCLSID’ {20D04FE0-3AEA-1069-A2D8-08002B30309D}
ShellExecute Me.hwnd, "open", _
"explorer", _
"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", _
vbNullString, SW_SHOWNORMAL
打开“网上邻居“
’ 网上邻居
’ HKEY_CLASSES_ROOTCLSID’ {208D2C60-3AEA-1069-A2D7-08002B30309D}
ShellExecute Me.hwnd, "open", _
"explorer", _
"::{208D2C60-3AEA-1069-A2D7-08002B30309D}", _
vbNullString, SW_SHOWNORMAL
打开“回收站“
’ 回收站
’ HKEY_CLASSES_ROOTCLSID’ {645FF040-5081-101B-9F08-00AA002F954E}
ShellExecute Me.hwnd, "open", _
"explorer", _
"::{645FF040-5081-101B-9F08-00AA002F954E}", _
vbNullString, SW_SHOWNORMAL
ShellExecuteEx API演示
必要声明:
Public Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
’ Optional fields
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
’ fMask
Public Const SEE_MASK_CLASSKEY = &H3
Public Const SEE_MASK_CLASSNAME = &H1
Public Const SEE_MASK_CONNECTNETDRV = &H80
Public Const SEE_MASK_DOENVSUBST = &H200
Public Const SEE_MASK_FLAG_DDEWAIT = &H100
Public Const SEE_MASK_FLAG_NO_UI = &H400
Public Const SEE_MASK_HOTKEY = &H20
Public Const SEE_MASK_ICON = &H10
Public Const SEE_MASK_IDLIST = &H4
Public Const SEE_MASK_INVOKEIDLIST = &HC
Public Const SEE_MASK_NOCLOSEPROCESS = &H40
Public Declare Function ShellExecuteEX Lib "shell32.dll" _
Alias "ShellExecuteEx" _
(lpExecInfo As SHELLEXECUTEINFO) As Boolean
执行调用“文件属性“对话框
Dim dwReturn As Long
Dim lpExecInfo As SHELLEXECUTEINFO
With lpExecInfo
.cbSize = Len(lpExecInfo)
.fMask = SEE_MASK_NOCLOSEPROCESS or _
SEE_MASK_INVOKEIDLIST or _
SEE_MASK_FLAG_NO_UI
.hwnd步步惊心 = Me.hwnd
.lpVerb = "properties"
.lpFile = LocalDir & File1.FileName
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = SW_SHOWNORMAL
.hInstApp = 0
.lpIDList = 0
End With
dwReturn = ShellExecuteEX(lpExecInfo)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB6中使用Shellexecute函数打开指定的谷歌浏览器,可以通过以下方式实现: 首先,我们需要在VB6的代码中引用Shell32.dll库文件,在项目中选择“工具”->“引用”,然后勾选“Shell32”。这样我们就可以使用ShellExecute函数。 接下来,在代码中使用ShellExecute函数来打开指定的谷歌浏览器,方法如下: ``` 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 OpenGoogleChrome() Dim chromePath As String Dim url As String Dim ret As Long chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" '指定谷歌浏览器的路径 url = "https://www.google.com" '指定要打开的网址 ret = ShellExecute(0, "open", chromePath, url, "", 1) '调用ShellExecute函数打开谷歌浏览器 If ret > 32 Then MsgBox "谷歌浏览器已成功打开" Else MsgBox "打开谷歌浏览器失败" End If End Sub ``` 以上代码中,我们将Chrome浏览器的路径指定为chromePath变量,将要打开的网址指定为url变量。然后,使用ShellExecute函数,指定打开方式为“open”,传递谷歌浏览器路径和网址作为参数,再传递空字符串表示当前目录,最后传递1表示最大化窗口显示。 最后,根据ShellExecute函数的返回值,判断是否成功打开谷歌浏览器,并通过消息框显示相应的提示信息。 这样,我们就可以使用VB6中的Shellexecute函数来指定打开谷歌浏览器了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值