window station 和desktop。它們主要是用於服務程式,一般的應用程式不必使用它們。它們可以用來對服務進行保護。運行在不同的window station 或不同的desktop下的應用程式,不能互相發送訊息、掛鈎、使用同一個clipboard等等。主要是出於安全的目的。
服務程式一般使用的是LocalSystem帳戶,擁有自己的window station,和Default案頭,這個window station是不能於使用者互動的,也就是說,你不能在上面顯示視窗,它也不接受使用者的滑鼠、鍵盤等輸入。
當使用使用者帳戶登入以後,看到的案頭,是WinSta0(window station)下的Default(desktop).
WinSta0下有3個案頭:
WinLogon :以Logon對話方塊的形式出現.當使用者登入以後,WinLogon.exe切換到Default desktop.
Default :這是Explorer.exe和所有使用者程式視窗出現的地方,也就是我們通常使用windows看見的地方.應用程式就運行在這個案頭上
Screen saver :系統閒置時候,運行屏保的案頭.
可以用下面的方法解決你的問題,使你的服務運行在WinSta0(window station)下的Default(desktop):
案頭-->我的電腦-->右鍵,在彈出的菜單中選擇"管理"-->在左面的一欄中找到"服務和應用程式"-->點擊"服務"-->到右面找到你的服務,雙擊,在彈出的對話方塊中修改屬性,選擇“登入”標籤頁的“允許服務與案頭互動”,那麼該服務就使用的是WinSta0(window station)下的Default(desktop). 你也就可以與你的服務進行互動操作了。
但是,做這些之前要考慮清楚。因為,這樣你的服務就有安全問題了,任何其他的程式都可以向它發送訊息.比如普通程式因為跟你的服務在同一個desktop下,就可以給你發送視窗的關閉訊息,迫使退出訊息迴圈,結束服務.或者對你的服務進行鍵盤、滑鼠掛鈎(hook)。