`

VB 自动安装捆绑控件的模块

    博客分类:
  • vb
阅读更多
' ================================================
' 安装程序控件V1.1
' 作者:Huang Guan
' 2005-2-1 14:50
' ================================================

' 获得系统目录路径
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
' 等待指定进程运行结束
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function
WaitForSingleObject Lib "kernel32" _
(
ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function
CloseHandle Lib "kernel32" _
(
ByVal hObject As Long) As Long
Private Const
INFINITE = -1&
Private Const SYNCHRONIZE = &H100000


Private Function GetSysDir() As String
Dim
TmpSysPath As String * 256, TmpLength As Byte
TmpLength = GetSystemDirectory(TmpSysPath, 256)
GetSysDir = Left(TmpSysPath, TmpLength)
End Function
Private Function
FileExist(ByVal FilePath As String) As Boolean
If
Dir(FilePath, vbNormal Or vbSystem Or vbHidden) <> "" Then
FileExist = True
Else
FileExist = False
End If
End Function
Private Function
RunAndWait(ByVal FilePath As String, Optional LongTime As Long = 0) As Boolean
Dim
pid As Long
Dim
ExitEvent As Long
Dim
hProcess As Long '进程句柄
pid = Shell(FilePath, vbNormalNoFocus)
hProcess = OpenProcess(SYNCHRONIZE,
False, pid)
If LongTime = 0 Then
ExitEvent = WaitForSingleObject(hProcess, INFINITE)
Else
ExitEvent = WaitForSingleObject(hProcess, LongTime)
End If
RunAndWait = ExitEvent
ExitEvent = CloseHandle(hProcess)
End Function

Public Sub
SetupCtrl(ByVal Files As String, ByVal ResID As String)
On Error GoTo ErrHandle
Dim arrCtrls() As String, TempFile() As Byte, arrRes() As String, SystemPath As String, FileNum As Integer
arrCtrls = Split(Files, "|")
arrRes = Split(ResID,
"|")
SystemPath = GetSysDir
For i = 0 To UBound(arrCtrls)
If FileExist(SystemPath & "\" & arrCtrls(i)) = False Then
TempFile = LoadResData(arrRes(i), "CUSTOM")
FileNum = FreeFile
Open SystemPath &
"\" & arrCtrls(i) For Binary Access Write As #FileNum '新建文件(把 Winsock等 控件复制到指定目录下)
Put #FileNum, , TempFile
Close #FileNum
RunAndWait "regsvr32 " & SystemPath & "\" & arrCtrls(i) & " /s", 0 '注册控件,无弹出对话框
End If
Next
Exit Sub
ErrHandle:
MsgBox Err.Description
End Sub

 

分享到:
评论

相关推荐

    VB压缩文件控件实例.rar

    VB压缩文件控件实例是一个非常实用的工具,它允许开发者在VB应用程序中集成类似于WINzip这样的功能,无需依赖外部的压缩软件。这个控件使得在VB环境中生成、管理和操作ZIP文件变得简单,同时也为创建自定义的压缩...

    VB6精简简化版

    这个“VB6精简简化版”是针对原版VB6进行优化和精简的版本,旨在减少安装过程中的冗余组件,特别是去除了可能存在的捆绑软件,提供了一个更纯净的开发环境,适合对VB6有兴趣但又不想被额外软件困扰的用户。...

    VB.NET 学习资料

    ### VB.NET 学习资料概览 #### 一、VB.NET 基础教程 **1.1 VB.NET 介绍** - **定义**: VB.NET (Visual Basic .NET) 是一种面向对象的编程语言,由微软开发,是 Visual Basic 的一个版本,支持 .NET Framework 并与...

    VB编程资源大全(源码 其它1)

    o034_rotfont.zip 用VB实现字体的旋转 622,o033_998162026.zip 制作安装程序常用的模块(2KB) 623,o032_play024.zip 对电子爱好者是一个不错的选择(7KB) 624,o031_Play39.zip 时间、空间大小等...

    2013-2014第2学期重修复习提纲_vb程序设计.doc

    - 在VB中,工程文件(.vbp)用于组织整个项目的文件,至少包含工程文件和标准模块文件。 5. 控件状态设置: - 通过修改Command1.Visible=False,可以使得命令按钮不可见。 - Timer1.Interval=0会停止计时器的...

    VB编程资源大全(源码 其它4)

    o034_rotfont.zip 用VB实现字体的旋转 622,o033_998162026.zip 制作安装程序常用的模块(2KB) 623,o032_play024.zip 对电子爱好者是一个不错的选择(7KB) 624,o031_Play39.zip 时间、空间大小等...

    VB编程资源大全(源码 其它3)

    o034_rotfont.zip 用VB实现字体的旋转 622,o033_998162026.zip 制作安装程序常用的模块(2KB) 623,o032_play024.zip 对电子爱好者是一个不错的选择(7KB) 624,o031_Play39.zip 时间、空间大小等...

    VB编程资源大全(源码 其它2)

    o034_rotfont.zip 用VB实现字体的旋转 622,o033_998162026.zip 制作安装程序常用的模块(2KB) 623,o032_play024.zip 对电子爱好者是一个不错的选择(7KB) 624,o031_Play39.zip 时间、空间大小等...

    《Visual Basic .NET面向对象可重用组件》开发一书程序例子

    面向对象编程(OOP)是一种流行的编程范式,它基于类和对象的概念,使得代码更加模块化、易于维护和扩展。 在VB.NET中,面向对象特性主要包括类、对象、封装、继承、多态性等核心概念。首先,类是创建对象的模板,...

    2007年4月计算机等级考试二级VB程序设计笔试试卷

    - **解释**: 在Visual Basic中,控件的事件过程名称是由控件名称和事件名称组成的。例如,名为`C1`的命令按钮的Click事件过程应命名为`C1_Click`。 ### 14. **滚动条的刻度值属性** - **知识点**: 决定滚动条每次...

    vc++ 应用源码包_1

    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

    vc++ 应用源码包_2

    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

    vc++ 应用源码包_3

    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

    vc++ 应用源码包_6

    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

    vc++ 应用源码包_5

    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

Global site tag (gtag.js) - Google Analytics