偶正做一项目中需要报警功能,但通常怕客户电脑上没有声卡或音响,所以根据指定声音声卡报警的同时让蜂鸣器也发出声音.下面是完整的代码,测试通过(个人习惯,通常不喜欢把声明和使用放在一个类中).
声明:
public class APIs
{
[DllImport("Kernel32.dll")]
public static extern bool Beep(int frequency, int duration);
}
实现:
/// <summary>
/// 蜂鸣器发声 (非零)表示成功,否则返回零。会设置GetLastError
/// </summary>
/// <param name="iFrequency">声音频率(从37Hz到32767Hz)。在windows95中忽略</param>
/// <param name="iDuration">声音的持续时间,以毫秒为单位。如为-1,表示一直播放声音,直到再次调用该函数为止。</param>
public static bool Beep(int iFrequency, int iDuration)
{
return APIs.Beep(iFrequency, iDuration);
}
调用(我随便找了个方法测试,其实就是个按钮事件):
private void btnCancel_Click(object sender, EventArgs e)
{
if (common.Beep(3000, 5000))
{
MessageBox.Show("成功");
}
else
{
MessageBox.Show("失败");
}
//this.Close();
}