| 作者 | 主题 |
|---|---|
|
lnf 侠客 经验值:712 发帖数:150 精华帖:0 |
楼主
主题:WINCC的声音报警
请教:有没有人做过上位机通过WINCC控件做外部声音报警?请指教一二。
|
|
kkkgo123 游士 经验值:242 发帖数:59 精华帖:1 |
楼
主题:回复:WINCC的声音报警
在全局脚本里面新建一个循环的东东,可以设置 2s,代码如下
#include "apdefap.h" int gscAction( void ) { MSG_RTDATA_STRUCT mRT; int i; char* pszToken; //Now is my code #pragma code("Winmm.dll") BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); #pragma code() DWORD SND_ASYNC=0x0001; DWORD SND_LOOP=0x0008; DWORD alarmsum,alarmunack; LPCMN_ERROR errorunack,errorsum; #pragma code("msrtcli.dll") #pragma code() LPDWORD lpdwServiceID; MSG_SERVICE_NOTIFY_PROC lpfnNotifyProc; LPMSG_FILTER_STRUCT lpMsgFilter; DWORD dwNotifyMask; LPVOID lpvUser; LPCMN_ERROR lpError; BOOL n1; n1=MSRTGetMsgQuit(&alarmunack,errorunack); SetTagDWord("number",alarmunack); MSRTGetMsgActual(&alarmsum,errorsum); SetTagDWord("sum",alarmsum); if (alarmsum==0) sndPlaySoundA(NULL,SND_ASYNC); else { if (alarmunack>0) sndPlaySoundA("C:\\Program Files\\Windows NT\\Pinball\\SOUND36.WAV",SND_ASYNCSND_LOOP); else sndPlaySoundA(NULL,SND_ASYNC); //sndPlaySoundA("C:\\windows\\media\\office97\\laser.wav",SND_ASYNCSND_LOOP); } return 1; } |