我正在編寫一個Windows服務應用程序,該應用程序監聽連接並根據網絡上另一臺計算機上運行的其他應用程序的指示執行某些任務。檢查當前是否有用戶登錄到Windows
其中一項任務確保當前沒有用戶登錄,鎖定工作站,刪除某些文件,然後重新啓動系統。我考慮使用this solution來查看正在運行的進程列表並檢查用戶名,通過將用戶名與SYSTEM,NETWORK等匹配來確定是否沒有用戶登錄。我意識到我有PostgreSQL正在運行,它使用名爲postgres的用戶帳戶所以這是行不通的。檢查explorer.exe是否運行也不起作用,因爲資源管理器崩潰,或者我有時自己結束這個過程並重新啓動它。
什麼是確定沒有用戶使用C#登錄到工作站的好方法?
非常感謝大家。我並不擅長使用WMI,在發生錯誤後發生錯誤後,決定採用flodin的答案。以下是其他人感興趣的示例用法:http://www.pinvoke.net/default.aspx/wtsapi32/WTSEnumerateSessions.html – Zahymaka 2009-02-15 21:37:48