找回密码
 注册

QQ登录

只需一步,快速开始

搜索

博图V15 wincc报警声音提示 C函数

[复制链接]
侠客天下 发表于 2020-10-23 15:44:32 | 显示全部楼层 |阅读模式
播放声音C函数 PlaySound_WinCC_Prof
WinCC Runtime Professional

    1.创建如下图的C脚本:

//从此处开始插入标头

#include "GlobalDefinitions.h"
void Play_Sound()
{
//从此处开始插入标头

#pragma code("Winmm.dll")
VOID WINAPI PlaySoundA(char *pszSound, char* hmode, DWORD dwflag);
#pragma code()
PlaySoundA("C:\\mysound.wav", NULL, 1);
}


    2.如果替换掉“PlaySoundA” ("C:\\mysound.wav")路径中的声音文件就能实现播放其他的声音文件。

    3.脚本链接到相关系统事件,例如:单击按钮或屏幕更改。

    4.当事件发生时声音就会被播放。


实现此功能的要求是必须安装声卡。


PlaySoundA函数的说明:

1.     参数char* pszSound:

      指定声音文件 (*.wav 文件) 的全路径。

2.     参数char* hmode:

      总为 0。

3.     参数DWORD dwflag:

       SND_SYNC = 0x0000:声音文件播放一次,该脚本一直等到播放结束。

       SND_ASYNC = 0x0001:声音文件播放一次,同时并行处理该脚本。

       SND_NODEFAULT = 0x0002:如果未找到该声音文件,则不播放默认值,而是什么也不播放。

       SND_LOOP = 0x0008:重复播放该声音文件直到下个 PlaySoundA 调用 (只能通过 0x0001) => 总是指定 0x0009。

    这些参数也可通过逐位逻辑‘或’进行组合 (如:SND_ASYNC | SND_LOOP)





//从此处开始插入标头

#include "GlobalDefinitions.h"
void Play_Sound()
{
//从此处开始插入代码

#pragma code ("Winmm.dll")
VOID WINAPI PlaySoundA(char *pszSound, char* hmode, DWORD dwflag );
#pragma code ( )


BOOL m1=GetTagWord("Tag_2");

if (m1)
{

PlaySoundA("D:\\f2818.wav",NULL,0x0001|0x0008);

}
if (m1==0)
{
         PlaySoundA(NULL,NULL,0x0000 );
}

lubin5282 发表于 2020-10-29 08:01:43 | 显示全部楼层
不咋的,不咋的,不咋的,
 楼主| 侠客天下 发表于 2021-5-13 14:25:51 | 显示全部楼层
lubin5282 发表于 2020-10-29 08:01
不咋的,不咋的,不咋的,

有什么好的方法,指教下。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-12-22 11:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表