【CBM666 的如何制作与使用 .RES 资源文件】

2007年04月30日 星期一 08:01

'这是从资源文件里调用msvbvm60.dll 注册的代码
'本代码是放在模块 Moudule1.bas 里面,不是放在Form1里面的.
'要注册.dll .ocx最好是放在.bas里面,并把启动项设为Sub Main
'否则有可能在还没进入窗体执行注册的动作前,就产生错误而中断了
'尤其是98系统之下的msvbvm60.dll

'先建立一个资源文件, 在 Custom 101 装载 msvbvm60.dll

Global winsys$, appdisk$, aa$
Sub Main()
   On Error Resume Next
   If App.PrevInstance Then MsgBox "本系统已运行中, 不得重复加载!!", vbOKOnly, "菜鸟多媒体桌面工具": End
   appdisk = IIf(Right(App.Path, 1) = "/", App.Path, App.Path & "/")
   winsys = GetSyspath
   Call regdllocx
   Form1.Show
End Sub

Private Sub regdllocx()
   On Error Resume Next
   Dim byt() As Byte
   aa = winsys & "msvbvm60.dll"
   If Dir(aa) = "" Then
      byt = LoadResData(101, "CUSTOM")
      Open aa For Binary As #1
      Put #1, 1, byt()
      Close #1
   End If
   If Dir(aa) <> "" Then
      aa = "Regsvr32 /s " & aa
      Call Shell(aa, vbHide)
   End If
End Sub

Public Function GetSyspath() As String
   '获取system32路径
   aa = Trim(Environ("ComSpec"))
   GetSyspath = Mid(aa, 1, InStrRev(aa, "/"))
End Function


'直接从资源文件调用 .bmp图片(只允许.bmp),不必释放到硬盘
'Me.Icon = LoadResPicture(101, vbResIcon) '注释:加载图标
'Picture1.Picture = LoadResPicture(101, vbResBitmap) '注释:加载位图
'Command1.MouseIcon = LoadResPicture(101, vbResCursor) '注释:加载光标'

'播放 WAVE 声音(只允许.wav)

Option Explicit
Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
Const SND_ASYNC = &H1
Const SND_MEMORY = &H4
Private Sub Command1_Click()
Dim bArr() As Byte
bArr = LoadResData(101, "CUSTOM")
DoEvents
sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_MEMORY
End Sub

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值