2010-05-29 31 views

回答

3

該服務可能必須被授予訪問桌面的權限。通過服務屬性,「登錄」選項卡,以本地系統帳戶登錄,然後選中「允許服務與桌面交互」。

+4

應該指出,與桌面設置的交互是一個安全問題,你應該儘量遠離它。 – Anders 2010-05-29 16:52:35

3

如果在用戶桌面上以SYSTEM身份運行的窗口存在安全問題,則應該使用其他形式的IPC(如果您只需通知該服務而不提供任何其他數據,事件應該足夠了)

如果另一方面,如果您想從窗口本身捕獲有關設備更改,電源和會話事件等的通知,那麼當您作爲服務運行時,不會使用消息執行此操作,您的活動HandlerEx

0

誰在發送廣播?除非發送廣播的組件作爲本地系統運行,否則它無權將窗口消息發送到不同會話中的窗口句柄。由於所有Windows服務(自Vista以來)都運行在會話0中,並且幾乎所有其他組件都在Session> = 1中運行,所以很可能這就是您沒有收到廣播的原因。

相關問題