如何从窗口服务登录用户名。当我使用Environment.UserName做同样的事情我得到用户名为“系统”。
感谢 Arvind的
答案 0 :(得分:2)
您获得系统,因为您的服务在系统帐户下运行。
有一篇关于codeproject的文章讨论了同样的事情..请查看http://www.codeproject.com/KB/vb/Windows_Service.aspx
System.Diagnostics.Process[] objArrProcess = System.Diagnostics.Process.GetProcessesByName("explorer");
string strCurrentUserName = objArrProcess[0].StartInfo.EnvironmentVariables["username"];
这适合我。
答案 1 :(得分:1)
查看此链接,该链接讨论从窗口服务获取当前登录用户 -
http://www.pcreview.co.uk/forums/thread-3460184.php
取自上述链接本身 -
当前登录的用户可以有0个或更多。如果你想要所有0或者 1个用户当前在控制台登录然后P / Invoke to WTSGetActiveConsoleSessionId和WTSQuerySessionInformation。如果你想 所有用户然后你需要在一个。中调用WTSQuerySessionInformation 循环。