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

Résolu
Signaler
Messages postés
7
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
21 mars 2006
-
Messages postés
78
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
29 juin 2006
-
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

Messages postés
78
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
29 juin 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
95
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
4 mars 2013

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
Messages postés
7
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
21 mars 2006

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
Messages postés
78
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
29 juin 2006

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
Messages postés
7
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
21 mars 2006

Merci pour l'info !
Si tu as un peu de temps, peux-tu me communiquer la clè ?

A+, Merci
Jiriki,