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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5506|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

wincc聲音報(bào)警C腳本版

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140343 發(fā)表于 2016-9-24 20:33 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
//wincc聲音報(bào)警C腳本版,和wincc自身的報(bào)警沒有任何關(guān)系,所以不要和wincc自帶的報(bào)警相關(guān)聯(lián)


#include "apdefap.h"


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

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

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

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

totalnum=sizeof(data)/sizeof(struct datainfo);    //報(bào)警變量的數(shù)量
ack_status=GetTagBit(ack_name);

for(index=0;index<totalnum;index++)    //查找當(dāng)前第一個報(bào)警的變量所對應(yīng)的聲音文件名,搜索的順序決定了優(yōu)先級
{
    if (statusdata[index].playing)
    {
        statusdata[index].prevStatus=GetTagBit(data[index].tagname);
        if (ack_status)    //確認(rèn)報(bào)警變量
        {
            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)    //當(dāng)要播放的聲音文件和當(dāng)前正在播放的聲音文件不同時才播放新的聲音
{
    currfilename=filename;        //修改當(dāng)前正在播放的聲音文件名
   
    if (NULL==currfilename)    //如果沒有報(bào)警則停止播放聲音
    {
        FullName[0]=0x0;
        PlaySoundA(NULL,NULL,0x2000|1|8);        //停止播放聲音
    }   
    else    //循環(huán)播放新的聲音文件
    {
        strcpy(FullName,dirname);        //復(fù)制目錄名
        strcat(FullName,currfilename);        //合成聲音文件全名
        PlaySoundA(FullName,NULL,0x2000|1|8);    //播放聲音
    }   
}

return 0;


}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲黄色三级 | 深夜福利免费 | 伊人久久精品 | 日韩精品国产一区 | 日日不卡av | 午夜天堂网 | 久久免费精品视频 | 欧美xx孕妇 | 五月婷婷综合在线 | 免费v片在线观看 | 成人精品在线视频 | 日韩精品免费看 | 欧美日韩视频在线 | 欧美一级黄 | 久久亚洲精品视频 | 激情小说图片视频 | 亚洲成人一区二区 | 国产免费一区二区三区 | 精品一区二区三区视频 | 欧美日韩一区在线观看 | 国产一区在线播放 | 亚洲一级特黄 | 日韩在线免费视频 | 欧美视频一区二区三区 | 这里都是精品 | 日韩综合在线观看 | 国产精品久久久久久久成人午夜 | 精品国产欧美 | 美女黄色在线观看 | 亚洲午夜视频在线观看 | 国产超碰人人模人人爽人人添 | 91啪国产 | 在线视频99 | 久久久久久久国产精品 | 性高潮久久久久久久 | 日韩免费高清视频 | 97人人插| 日韩免费在线 | 免费av片| 国产一区二区福利 | 91色视频|