先在你的资源文件的源文件 RC 文件加入下面一行:
MySound WAVE c:\music\vanhalen.wav 然后将其编译为 RES 文件。
再使用下面的声明及代码:
Private Declare Function PlaySound Lib _ "winmm.dll" Alias "PlaySoundA" ( _
ByVal lpszName As String, _
ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Private Const SND_ASYNC& = &H1
Private Const SND_NODEFAULT& = &H2
Private Const SND_RESOURCE& = &H40004
Dim hInst As Long
Dim sSoundName As String
Dim lFlags As Long
Dim lRet As Long
Private Sub Command1_Click()
hInst = App.hInstance
sSoundName = "MySound"
lFlags = SND_RESOURCE + SND_ASYNC + _ SND_NODEFAULT
lRet = PlaySound(sSoundName, hInst, lFlags)
End Sub
MySound WAVE c:\music\vanhalen.wav 然后将其编译为 RES 文件。
再使用下面的声明及代码:
Private Declare Function PlaySound Lib _ "winmm.dll" Alias "PlaySoundA" ( _
ByVal lpszName As String, _
ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Private Const SND_ASYNC& = &H1
Private Const SND_NODEFAULT& = &H2
Private Const SND_RESOURCE& = &H40004
Dim hInst As Long
Dim sSoundName As String
Dim lFlags As Long
Dim lRet As Long
Private Sub Command1_Click()
hInst = App.hInstance
sSoundName = "MySound"
lFlags = SND_RESOURCE + SND_ASYNC + _ SND_NODEFAULT
lRet = PlaySound(sSoundName, hInst, lFlags)
End Sub
解决方案 »
- vb 如何读取MS word里的内容,并返回如内容所在页码等信息
- 如何让MSHFlexGrid控件内当数据行不满控件时自动增加空行填满该控件,使控件下部不留空白处。
- 调用控件的方法时弹出异常“The object invoked has disconnected from its clients.”代表什么意思?如何解决?谢谢。
- 她就要作出决定了,我很紧张......
- 如何通过向指定的IP发送信息
- 欢迎大家都硬件使用版非技术看看,有奖励的,详情见帖
- 如何将一个已有数据的RECORDSET写到结构完全一样的数据表中,在线等急
- 急,解决马上给分!
- 我写的DLL,在win2000下vb程序调用的很好,为什么在win98-me就报错呀
- 如何实现一幅图像的渐变为另一幅图像?????
- 关于向EXCEL导出数据的一些讨论,欢迎UP!
- 一个简单而又难办的问题
Dim Ocx() As Byte 'OCX是个Btye类型的数组
Dim Counter As Long
Ocx = LoadResData(101, "CUSTOM") '将自定义资源中101号资源读入数组OCX
'注意,微软的帮助中对加载自定义资源的说明有错误,自定义资源标识为"CUSTOM"而不是帮助所说的数字10 If Right(App.Path, 1) = "\" Then '读取程序所在路径,判断是否为根目录并分别处理
'程序在根目录下
If Dir(App.Path & "CoolToolBar.ocx") = "" Then '程序路径下有无控件,无则生成控件
'以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录
Open App.Path & "CoolToolBar.ocx" For Binary As #1
For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值
Put #1, , Ocx(Counter)
Next Counter
Close #1
End if
Else
'程序不在根目录下
If Dir(App.Path & "\CoolToolBar.ocx") = "" Then '程序路径下有无控件,无则生成控件
'以二进制方式写(生成)控件(CoolToolBar.ocx)到主程序所在的目录
Open App.Path & "\CoolToolBar.ocx" For Binary As #1
For Counter = 0 To OCXSIZE - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值
Put #1, , Ocx(Counter)
Next Counter
Close #1
End if
End if
Form1.Visible = True '主程序所用控件已经生成,显示主窗体,进入主程序。
End Sub注意:将以上代码作为一个模块添加到工程中,并在工程-工程属性设置中将启动对象选为Sub Main,即上面的脱壳代码。然后编译生成EXE文件,将该EXE文件拷贝到其他没有安装所用控件的计算机上运行一下看看是否实现了控件携带之金蝉脱壳。如果是那么OK!以上为使用一个控件的情况,使用多个控件方法基本相同,不在赘述。
然后就可以添加各类资源数据
程序中用相应的函数调用各类数据
LoadResData
LoadResPicture
LoadResString
在VB的工具栏上多了一个和注册表的图标差不多的东东(资源编缉器),打
开它,然后在资源编缉器上的工具条上点一下编缉字符串表格,双击在101
的那个空格输入"BLIZZARD",然后存盘.
dim strName as string
strName=loadresstring(101)
debug.print strName 'strName 的值就是BLIZZARD