2014-07-23 53 views
0

我們有10臺電腦和1臺服務器。如何使用Windows Web Service獲取已登錄的用戶帳戶名?

我們的webservice作爲LOCALSYSTEM在每臺計算機上運行。

該web服務具有寫入中央服務器計算機上的文件的代碼。

該服務的計時器持續時間爲30分鐘。每30分鐘一個不同的用戶登錄系統。我們希望服務能夠檢測當前登錄用戶的名稱並傳遞給寫入記事本的方法。

問題是如何獲取用戶名中的loged?

回答

0

您可以在Windows上使用Remote Desktop Services API提取有關當前用戶會話的所有信息。有一個簡單的方法來枚舉與WTSEnumerateSessions的所有會話,但是對於您的系統服務更好的方法是訂閱有關會話更改的通知,並在您的服務HandleEx過程中接收SERVICE_CONTROL_SESSIONCHANGE事件。

無論哪種方式(直接枚舉會話或會話事件),您將獲得一個會話ID,您可以使用該會話ID調用WTSQuerySessionInformation,將WTSUserName作爲第三個參數傳遞給該函數。這會給你一個必要的用戶名稱回到緩衝區。

相關問題