2009-08-17 80 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)。