|
Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX_PATH = 250 '定义字符串长度
'*************************************************************************
' 模 块 名:GetWinSysDir
'--------------------------------------------------------------------------
' 功能描述:自定义读取Winddows\System32 目录函数
' 输 入:无
' 输 出:GetWinSysDir(String) 'System32路径
' 调用模块:GetSystemDirectory 获取系统目录
' 编 程:江羽
' 日 期:2008-10-16
'*************************************************************************
Public Function GetWinSysDir() As String
Dim strSysDir As String
Dim Length As Long
strSysDir = String(MAX_PATH, 0) '赋值
'strSysDir为取得系统文件目录
Length = GetSystemDirectory(strSysDir, MAX_PATH)
'去掉多余的空格
strSysDir = Left(strSysDir, InStr(strSysDir, Chr(0)) - 1)
'赋值输出系统路径
GetWinSysDir = strSysDir
End Function
Const ExeFile = 114688 '欲生成的文件大小,原文件112K
Dim ExeMy() As Byte 'Btye类型的数组,存放EXE文件
Dim Counter As Long '文件字节数
'将文件读入数组
ExeMy = LoadResData(101, "CUSTOM")
Open "C:\MyPro.exe" For Binary As #1
'从0 Byte开始因此以文件大小 - 1Byte 为终值
For Counter = 0 To ExeFile - 1
Put #1, , ExeMy (Counter) '释放文件
Next Counter
Close #1
'*************************************************************************
' 模 块 名:ReleaseMdw
'-------------------------------------------------------------------------
' 功能描述:自定义过程,释放工作组文件到指定路径,并定义指定名称
' 输 入:strMdw(String) 工作组文件名
' intTime As Integer 关闭窗体延迟时间
' 输 出:无
' 调用模块:GetWinSysDir 获取系统目录自定义函数
' 实 例:ReleaseMdw "security.mdw", 2000
' 编 程:江羽
' 日 期:2008-10-16
'*************************************************************************
Sub ReleaseMdw(ByVal strMdw As String, ByVal intTime As Integer)
Const Security = 114688 '欲生成的工作组文件大小
Dim mdw() As Byte 'Btye类型的数组,存放工作组文件
Dim Counter As Long '对工作组文件字节数进行循环
Dim strSysPath As String '系统文件路径
Label1.Caption = "系统正在配置ACCESS环境,请稍候......."
'获取Windows系统文件夹System32路径,并赋值变量
strSysPath = GetWinSysDir
mdw = LoadResData(101, "CUSTOM") '将文件读入数组
'判断当前路径工作组文件是否存在,& _
存在则退出 , 不存在则释放工作组文件
If Dir(strSysPath & "\" & strMdw) = "" Then
'释放工作组文件到系统文件夹
Open strSysPath & "\" & strMdw For Binary As #1
'注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值
For Counter = 0 To Security - 1
Put #1, , mdw(Counter) '释放工作组文件
DoEvents '转让控制权
Next Counter
Close #1
End If
Label1.Caption = "系统配置成功,正在启系统......."
'启动计时器,在指定秒数后关闭窗体
Timer1.Interval = intTime
End Sub
以上是实例中的代码,内有详细注释,就不做特别说明,你可以将以上代码复制到工程中的Form1窗体中。
代码功能:是将集成在VB资源编辑器工作组文件,释放到系统文件夹中,即:System32中,以便我们后面调用。我们自定义了一个过程,过程预留了两个接口,一是将释放后的文件名,二是计时器触发时间,以便在指定时间关闭窗体,并关闭应用程序。
'*************************************************************************
' 模 块 名:Form_Load
'--------------------------------------------------------------------------
' 功能描述:窗体加载事件
' 输 入:无
' 输 出:无
' 调用模块:ReleaseMdw 释放工作组文件到指定路径,本实例路径为系统文件夹
' 编 程:江羽
' 日 期:2008-10-16
'*************************************************************************
Private Sub Form_Load()
'显示窗体
Me.Show
'自定义过程,"security.mdw"指定释的文件名,2000延迟关闭窗体时间
ReleaseMdw "security.mdw", 2000
End Sub
'*************************************************************************
' 模 块 名:Timer1_Timer
'--------------------------------------------------------------------------
' 功能描述:计时器事件
' 输 入:无
' 输 出:无
' 调用模块:
' 编 程:江羽
' 日 期:2008-10-16
'*************************************************************************
Private Sub Timer1_Timer()
'关闭应程序
End
End Sub
将以上代码复制到Form1 中,我们就可以开始编译了
Word文稿下载:VB封装工作组文件及调用方法探讨.rar
|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )
GMT+8, 2024-11-25 07:17 , Processed in 0.064499 second(s), 14 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.