ShellExecute 的应用技巧

以默认程序打开文档

  要以与文件后缀名关联的程序打开文档,在Windows 9X和Windows NT下可以用ShellExcute函数方便地实现。这则小技巧展示了会有多方便―你只需要一个声明和一行代码!
  开始一个新项目。在Form上放一个Command button,然后加入以下代码:

 

Private   Declare   Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(
ByVal hWnd As LongByVal lpOperation As String, _
 
ByVal lpFile As StringByVal lpParameters As String, _
 
ByVal lpDirectory As StringByVal nShowCmd As LongAs Long

Private Const SW_NORMAL=1 '(这些API常量可以用VB常量代替,比如vbNormalFocus)
Private Const SW_MAXIMIZE=3
Private Const SW_MINIMIZE=6
Private Const SW_SHOW = 5

Private Sub Command1_Click() 
 
Dim lR As Long 
 
Dim sFile As String 
 
Dim iFile As Integer 

 
' 创建一个测试用的文本文件
 sFile = App.Path & "SHELLTST.TXT" 
 
On Error Resume Next 
 
Kill sFile 
 
On Error GoTo 0 
 iFile 
= FreeFile 
 Open sFile 
For Binary Access Write As #iFile 
 Put #iFile, , 
"这是一个测试文件,演示ShellExecute API函数。" 
 Close #iFile 

 
' 依照文件名打开这个文本。Windows将会检查哪个可执行程序与.TXT关联 
 ' (默认一般是Notepad),并运行程序打开文档 
 lR = ShellExecute(Me.hWnd, "Open", sFile, """", vbNormalFocus) 
 
If (lR < 0Or (lR > 32Then 
   
' 成功 
 Else 
  
MsgBox "无法打开 '" & sFile & "'", vbInformation 
 
End If 
End Sub
 

  当你点击command button,将会在项目所在目录创建一个文本文件,并用默认程序打开(一般是Notepad)。
===============================================

译者附:
  本函数还可以用来连接到网页,照下面写就行了:
ShellExecute 0&, vbNullString, "http://coolbasic.yeah.net", vbNullString, vbNullString, vbNormalFocus

  或者这样写来发送Email:
ShellExecute me.hwnd, "open", "mailto:vbcode@vbcode.com", vbNullString, vbNullString, SW_SHOW

另外有ShellExecute的替代用法,更加简单实用,不用API,一句Shell搞定!

连接到网页:
  Shell "rundll32.exe url.dll,FileProtocolHandler http://72wb.pzwx.cn/"
打开文件:
  Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "SHELLTST.TXT"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值