2009-08-17 35 views
3

我有一个服务,作为几个应用程序/服务器的监督。这台机器上没有用户会话。如果出现问题,我希望看门狗能够在内部扬声器上发出哔哔声(这是我的队列,可以解决所有抱怨的问题)如何使Windows服务哔声?

当我在Windows上尝试Beep()API时,没有任何反应 - 我怀疑问题是服务会话不允许发出噪音?

我可以做这个工作吗?任何其他想法如何使服务提醒我?

〜CG

+0

您,先生,您的哔哔声,是办公环境可能如此烦人的原因之一 – skaffman 2009-08-18 12:45:07

回答

6

调用的CreateFile,然后发下来IOCTL_BEEP_SET(见http://www.koders.com/c/fidFEC3527B9D951559D62722A9C0C603863106CA9B.aspx了解详细信息)

似乎
+0

此外,*请*不要在OP描述的非常有限的情况之外进行此操作。无法保证这种方式在将来可以正常工作(事实上,它实际上已经在某些Windows版本上已经打破),这种技术是绝对的*最后*手段。如果你有*任何*用户登录,你可以做得更好。 – 2011-10-05 01:45:39

1

,如果你允许它与桌面交互它可能工作(配置选项的地方,我不记得在哪里)。

但个人而言,我会通过电子邮件发送给我的。

虽然也许你可以让它使用任务调度API为你自己安排一个任务,所以下次你登录时就可以看到它。

我不知道;你有几个选择。我尽量避免发出哔哔声。

0

尝试向控制台发送嘟嘟声“\ a”。不知道它是否会起作用。

上\设备\蜂鸣
0

蜂鸣并不像一个好主意 - 它可能最终会推动每个人都疯了.... 我d也同意“与桌面交互”选项,并在服务参数中设置此参见A Windows Service without a template

0

我建议创建一个简单的客户端应用程序来轮询该服务器以查询任何问题并返回一组状态消息。然后,将引发适当的UI(例如托盘上的气球),发送的电子邮件等,其包含任何警告或失败消息。

这种方式你也知道看门狗本身正在运行并具有网络连接 - 如果看门狗死亡和/或机器锁定,你不会知道。

它还可以避免在午餐过后机器不断地发出哔哔声时被抛出窗外。 [+1 to @mikej] :-)

投票时间应为您的最低所需响应时间的一半(请参阅Nyquist sampling rate)。