2010-10-01 7 views

Répondre

2

Vous obtenez système parce que votre service est exécuté sous le compte système.

Il y a un article sur CodeProject qui traite de la même chose .. vérifier 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"]; 

Cela fonctionne pour moi.

1

Vérifiez ce lien qui parle à obtenir l'utilisateur actuel loggedin du service de la fenêtre -

http://www.pcreview.co.uk/forums/thread-3460184.php

Extrait du lien ci-dessus lui-même -

Il peut être 0 ou plus utilisateurs connectés en cours. Si vous voulez tous les utilisateurs 0 ou 1 qui sont actuellement connectés à la console, appelez P/Invoke à WTSGetActiveConsoleSessionId et WTSQuerySessionInformation. Si vous voulez tous les utilisateurs, vous devez appeler WTSQuerySessionInformation dans une boucle .

Questions connexes