分享

在Excel Vba中使用API函数playSound播放声音

 猛禽2011 2011-07-09

PlaySound函数的声明如下:

Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

参数lpszName表示声音名,可以是文件名,系统事件名或内存地址,参数hModule只用于播放嵌入资源,其它的时候设置为0&,参数dwFlags是各种标志常量的组合,有下面一些常用的常量:
    SND_SYNC=&H0:同步播放,直到指定声音被播放,函数不会返回,不能跟SND_ASYNC一起使用
    SND_ASYNC=&H1:异步播放,不管声音是否播放,函数立即返回程序,不能同SND_SYNC一起使用
    SND_NODEFAULT=&H2:如果指定声音不存在,未设置此参数,将发出默认Beep声,设置了这个参数的话将不发出任何声音
    SND_LOOP=&H8:循环声音直至下次调用PlaySound函数 
    SND_ALIAS=&H10000:lpszName指向注册表项目,也就是说播放系统声音,不要同SND_RESOURCE或SND_FILENAME一起使用
    SND_PURGE = &H40:用来停止当前播放的声音,也可以将lpszName参数设置为“vbnullstring”来实现

----------------------------------------
下面是示例代码:

Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Sub testPlaySound()

    Call PlaySound(ThisWorkbook.Path & "\demo.wav", 0&, &H8 Or &H1)
    '异步、重复播放demo.wav

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://grooverve./logs/55236996.html

End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多