Comment récupérer le username d'une session Windows NT ou XP

Résolu
jiriki Messages postés 7 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 21 mars 2006 - 19 mai 2005 à 15:30
skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006 - 24 mai 2005 à 10:42
Bonjour à tous,

Je développe un spooler pour la création de PDF (avec Ghostscript).
Lorsqu'un utilisateur lance l'impression (depuis une printer PS) d'un document, mon spooler récupère la sortie, la sauve sous forme d'un fichier PS et en suite lance Ghostscript avec un ensemble de paramètres.
Mon problème est le suivant :
Quand l'impression lance mon spooler.exe, celui-ci est lancé par le user 'system' qui ne peut accéder aux données de l'utilisateur (fichier Ini propre à l'utilisateur avec par ex: Temp directory, Destination directory, ... ). J'ai déjà testé beaucoup d'API, mais ils me retournent tous le current user c-à-d 'system'.

Comment puis-je trouver le username qui à lancé la session ou la liste des username 'actifs' ?

Merci d'avance pour votre aide !!
A+,
Jiriki

5 réponses

skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006
24 mai 2005 à 10:42
Je précise que je suis sous VB.Net 2002 Framework 1.0



Dim regCle As Microsoft.Win32.RegistryKey

Dim strValeur, strRet As String

strValeur = "Software\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon"

regCle = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(strValeur, False)

If (Not regCle Is Nothing) Then

strRet = regCle.GetValue("DefaultUserName", 0)

regCle.Close()

Return strRet.ToUpper

End If


J'espère que ça pourra te servir.

Bon courage.



PS : Sais-tu ajouter une valeur dans le registre en VB ???


Zerocool59
3
badboy38 Messages postés 95 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 4 mars 2013
19 mai 2005 à 15:40
Salut,




Si tu programme avec VB6, la commande qui renvoi le nom de session windows ouverte est:



Dim Session

Session=Environ("Username")



Voila



Bon courage et bonne prog



@+ BadBoy38
0
jiriki Messages postés 7 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 21 mars 2006
19 mai 2005 à 15:46
Salut,
Le problème est que mon spooler.exe a été lancé par le système et que la fonction environ("username") me retourne le nom du user system et non pas le nom du user qui à demandé l'impression.

A+,
Jiriki
0
skowee59 Messages postés 78 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 29 juin 2006
21 mai 2005 à 10:03
Moi j'ai le même souci mais avec la création d'un service Windows pour
lequel je suis obligé d'utiliser le compte administrateur pour le
lancer. Pour récupérer l'utilisateur loggué, je me base sur le
registre. Le problème c'est que je ne suis pas au boulot, je ne peux
donc pas te donner la clé de registre exacte. Si tu es loggué sur ton
poste avec le profil X, fais une recherche dans le registre de la
valeur X.

Je ne sais si cette méthode est fiable à 100% mais pour le moment, je n'ai pas eu de souci...

Si tu ne trouves pas, fais moi signe, je t'enverrai la clé lundi.

Zerocool59
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jiriki Messages postés 7 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 21 mars 2006
24 mai 2005 à 10:30
Merci pour l'info !
Si tu as un peu de temps, peux-tu me communiquer la clè ?

A+, Merci
Jiriki,
0
Rejoignez-nous