描述:
附件是一个小实例。该 C 动作位于按钮后,这样只需单击该按钮就可产生声音。
C 动作:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma code ("Winmm.dll ")
VOID WINAPI PlaySoundA ( char* pszSound, char* hmode, DWORD dwflag );
#pragma code()
PlaySoundA("C:Wit.400Mediatada.wav",NULL,1);
}
该功能需要有声卡。
PlaySoundA 函数的说明:
- 参数 char* pszSound:
指定声音文件 (*.wav 文件) 的全路径。 - 参数 char* hmode:
总为 0。 - 参数 DWORD dwflag:
SND_SYNC = 0x0000:声音文件播放一次,该脚本一直等到播放结束
SND_ASYNC = 0x0001:声音文件播放一次,同时并行处理该脚本
SND_NODEFAULT = 0x0002:如果未找到该声音文件,则不播放默认值,而是什么也不播放。
SND_LOOP = 0x0008:重复该声音文件直到下个 PlaySoundA 调用 (只能通过 0x0001) => 总是指定 0x0009。这些参数也可通过逐位逻辑‘或’进行组合 (如:SND_ASYNC | SND_LOOP)
注意事项:
如果想使用计算机内部扬声器的蜂鸣声而不是声音文件,则实现如下脚本:
由于寻址内部扬声器,无需声卡。
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma code ("Kernel32.dll")
BOOL Beep( DWORD dwFreq, DWORD dwDuration);
//dwFreq 定义蜂鸣声的频率,单位:Hz
//dwDuration 指定蜂鸣声的持续时长,单位:ms
#pragma code()
Beep(1000,100);
//实例:频率:1000 Hz,100 ms
}
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332583.html