久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: wincc聲音報警C腳本版 [打印本頁]

作者: 51hei小林    時間: 2016-9-24 20:33
標題: wincc聲音報警C腳本版
//wincc聲音報警C腳本版,和wincc自身的報警沒有任何關系,所以不要和wincc自帶的報警相關聯


#include "apdefap.h"


//播放聲音的函數聲明
#pragma code("winmm.dll")
VOID WINAPI PlaySoundA(char *,char *,DWORD);
#pragma code()

struct datainfo    //變量名和聲音文件名的對應關系
{
    const char * const tagname;    //變量名
    const char * const soundname;    //聲音文件名
};
struct statusdatainfo        //保存報警變量的狀態信息
{
    int prevStatus;
    int playing;
};
//所有的報警變量和聲音文件名對應關系表
//注意:變量名和文件名要和實際的變量名、文件名完全一致
//注意:聲音文件只支持wav文件
//注意:變量越靠前,則優先級越高,在同時發生多個報警時,優先級最高的聲音優先播放,而且任一時刻只能播放一個聲音
static struct datainfo data[]=   
{
{"www","Windows XP 啟動.wav"},     
{"testalarm","ringin.wav"},
{"qqq","Windows XP 關機.wav"},
{"eee","Windows XP 注銷音.wav"}
};

static struct statusdatainfo  statusdata[sizeof(data)/sizeof(data[0])];
////////////////////////////////////

int gscAction( void )
{
int totalnum=0;    //總的報警變量數量,也等于總的報警聲音數量
int index=0;    //循環變量
int hasfound=0;    //已找到優先級最高的報警變量
char * filename=NULL;    //當前要播放聲音的文件名
char * dir;    //聲音文件存放的目錄
static char * currfilename=NULL;    //當前正在播放聲音的文件名,注意:該變量是靜態變量
static char  FullName[200];    //當前正在播放聲音的文件全名,注意:文件名全名不能太長,該變量是靜態變量
char * ack_; //報警確認變量的名字,一次只能確認優先級最高的報警
int ack_status=0;    //當前確認變量的狀態

totalnum=sizeof(data)/sizeof(struct datainfo);    //報警變量的數量
ack_status=GetTagBit(ack_name);

for(index=0;index<totalnum;index++)    //查找當前第一個報警的變量所對應的聲音文件名,搜索的順序決定了優先級
{
    if (statusdata[index].playing)
    {
        statusdata[index].prevStatus=GetTagBit(data[index].tagname);
        if (ack_status)    //確認報警變量
        {
            ack_status=0;
            statusdata[index].playing=0;
        }
        else
        {   
            if (0==hasfound)
            {
                hasfound=1;
                filename=data[index].soundname;
            }
        }
    }
    else
    {
        statusdata[index].playing=!statusdata[index].prevStatus && GetTagBit(data[index].tagname);
        statusdata[index].prevStatus=GetTagBit(data[index].tagname);
        if (statusdata[index].playing)
        {
            if(0==hasfound)
            {
                filename=data[index].soundname;
                hasfound=1;
            }
        }   
    }
}

SetTagBit(ack_name,0);   

if (filename!=currfilename)    //當要播放的聲音文件和當前正在播放的聲音文件不同時才播放新的聲音
{
    currfilename=filename;        //修改當前正在播放的聲音文件名
   
    if (NULL==currfilename)    //如果沒有報警則停止播放聲音
    {
        FullName[0]=0x0;
        PlaySoundA(NULL,NULL,0x2000|1|8);        //停止播放聲音
    }   
    else    //循環播放新的聲音文件
    {
        strcpy(FullName,dirname);        //復制目錄名
        strcat(FullName,currfilename);        //合成聲音文件全名
        PlaySoundA(FullName,NULL,0x2000|1|8);    //播放聲音
    }   
}

return 0;


}







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91国在线高清视频 | 中文字幕日韩欧美一区二区三区 | 日韩视频免费在线 | 国产午夜精品一区二区三区在线观看 | 亚洲视频精品在线 | 欧美日韩精品中文字幕 | 国产一区 | 手机av在线 | 久久精品亚洲欧美日韩精品中文字幕 | 亚洲一区二区三区四区五区中文 | 99视频在线看 | 正在播放国产精品 | 久久久久久久久久久久久九 | 日韩一区精品 | 一级爱爱片 | 精品国产一区二区三区观看不卡 | 欧美日韩专区 | 91在线免费观看网站 | 亚洲一区二区av | 国产大毛片| 亚洲国产成人精品久久 | 精品国产一二三区 | 国产1区2区在线观看 | 久久久久网站 | 国产精品www | 天堂视频免费 | 成人综合在线视频 | 中文字幕日韩欧美一区二区三区 | 狠狠久久综合 | av网站在线播放 | 中国一级毛片免费 | 黄色一级免费看 | 亚洲成人三级 | 精品一区二区三区四区外站 | 日日精品| av在线播放网站 | www国产成人免费观看视频 | 久草资源网站 | 日韩av黄色 | 国产精品高潮呻吟久久 | 欧美不卡一区二区三区 |