J'ai un programme qui fonctionne en temps que service, j'essaye de recupérer
le compte utilisateur qui à ouvert la session avec le code suivant :
lpbuffer est une chaîne ASCIIZ de 256
size est un entier=255
// on récupere le compte utilisateu
SI AppelDLL32("advapi32.dll","GetUserNameA" , &lpbuffer, &size) ALORS
leUser=lpbuffer
FIN
Ce code fonctionne parfaitement dans un applicatif mais lorsque qu'il est
inclu dans un service il renvoit System comme compte. Quelqu'un connait il
la commande qui permet de récupérer le nom du compte qui a ouvert la session
via un service ?
Mais je suis sur une piste, je me rends compte qui si le service lance un exe celui-ci est joué dans l'environnement utilisateur et peut donc me renvoyer l'username de la personne loguée.
Je suis sceptique... L'exe lancé par le service le sera avec l'utilisateur SYSTEM si le service est configuré par défaut, avec le nom d'un user si le service est configuré avec ce user. C'est normalement indépendant de la session en cours...
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Jean-Luc Baptiste a formulé la demande :
Non, pas si simple !
Mais je suis sur une piste, je me rends compte qui si le service lance un exe
celui-ci est joué dans l'environnement utilisateur et peut donc me renvoyer
l'username de la personne loguée.
Je suis sceptique...
L'exe lancé par le service le sera avec l'utilisateur SYSTEM si le
service est configuré par défaut, avec le nom d'un user si le service
est configuré avec ce user.
C'est normalement indépendant de la session en cours...
A+
--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Mais je suis sur une piste, je me rends compte qui si le service lance un exe celui-ci est joué dans l'environnement utilisateur et peut donc me renvoyer l'username de la personne loguée.
Je suis sceptique... L'exe lancé par le service le sera avec l'utilisateur SYSTEM si le service est configuré par défaut, avec le nom d'un user si le service est configuré avec ce user. C'est normalement indépendant de la session en cours...
A+
-- Romain PETIT contact : http://cerbermail.com/?O16kfXOFcq +-+ posté sur Usenet avec MesNews et non depuis un forum web +-+ news:fr.comp.developpement.agl.windev http://www.mesnews.net/ http://fr.wikipedia.org/wiki/Newsgroup
Emmanuel Haefelé
"Romain PETIT" a écrit
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être serait-ce plus simple que d'énumérer les sessions ouvertes.
Cordialement,
Emmanuel Haefelé.
"Romain PETIT" <VoirM@Signature.fin> a écrit
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que
service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui
tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être
serait-ce plus simple que d'énumérer les sessions ouvertes.
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être serait-ce plus simple que d'énumérer les sessions ouvertes.
Cordialement,
Emmanuel Haefelé.
Jean-Luc Baptiste
C'est un piste que je vais explorer. Sinon j'avais crée un petit batch avec set username > monfichier.txr et qui lancé à partir du service me renvoyait bien le nom de l'utilisateur courant adns le fichier texte mais bon pas génial comme solution.
Merci encore
"Emmanuel Haefelé" a écrit dans le message de news:4a79ab27$0$17757$
"Romain PETIT" a écrit
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être serait-ce plus simple que d'énumérer les sessions ouvertes.
Cordialement,
Emmanuel Haefelé.
C'est un piste que je vais explorer.
Sinon j'avais crée un petit batch avec set username > monfichier.txr et qui
lancé à partir du service me renvoyait bien le nom de l'utilisateur courant
adns le fichier texte mais bon pas génial comme solution.
Merci encore
"Emmanuel Haefelé" <e.haefele@wanadoo.fr> a écrit dans le message de
news:4a79ab27$0$17757$ba4acef3@news.orange.fr...
"Romain PETIT" <VoirM@Signature.fin> a écrit
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que
service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui
tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être
serait-ce plus simple que d'énumérer les sessions ouvertes.
C'est un piste que je vais explorer. Sinon j'avais crée un petit batch avec set username > monfichier.txr et qui lancé à partir du service me renvoyait bien le nom de l'utilisateur courant adns le fichier texte mais bon pas génial comme solution.
Merci encore
"Emmanuel Haefelé" a écrit dans le message de news:4a79ab27$0$17757$
"Romain PETIT" a écrit
Ok, donc tu veux enumérer, depuis ton programme qui tourne en tant que service, les sessions ouvertes sur la machine.
Peut-être qu'une autre solution consisterait à lister les process qui tournent et de récuper l'utilisateur qui exécute le processus.
Je n'ai pas de proposition quand à la méthode à appliquer mais peut-être serait-ce plus simple que d'énumérer les sessions ouvertes.
Cordialement,
Emmanuel Haefelé.
Jean-Luc Baptiste
Je vais me servir de l'idée d'emmanuel, je recupère la liste des processus, je regarde qui utilise explorer.exe et c'est ok !
Merci pour tout.
Je vais me servir de l'idée d'emmanuel, je recupère la liste des processus,
je regarde qui utilise explorer.exe et c'est ok !
SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
Pascal ROY
Je dis peut-être une bêtise, mais en regardant dans la base de registre HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
-- Pascal ROY (Service Informatique - SODALEC)
Je dis peut-être une bêtise, mais
en regardant dans la base de registre
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer
La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024
TailleMax est un entier système = 1024
TailleResultat est un entier système
Je dis peut-être une bêtise, mais en regardant dans la base de registre HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
-- Pascal ROY (Service Informatique - SODALEC)
Jean-Luc Baptiste
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas lorsque il est intégré dans un service !
Merci quand même !
"Thierry 46" a écrit dans le message de news:4a79dc6a$0$23470$
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est
lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas
lorsque il est intégré dans un service !
Merci quand même !
"Thierry 46" <thierry.magnac@orange.fr> a écrit dans le message de
news:4a79dc6a$0$23470$ba4acef3@news.orange.fr...
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024
TailleMax est un entier système = 1024
TailleResultat est un entier système
Ces 2 morceaux de code fonctionne lorsque le programme qui les exécute est lancée par l'utilisateur qui a ouvert la session mais ne fonctionne pas lorsque il est intégré dans un service !
Merci quand même !
"Thierry 46" a écrit dans le message de news:4a79dc6a$0$23470$
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
Jean-Luc Baptiste
Bonjour j'ai exploré aussi cette solution mais elle ne fonctionne pas sous vista... Je ne trouve pas dans la base de registre vista la clé citée ni une clé correspondante
"Pascal ROY" a écrit dans le message de news:h5djsn$58b$
Je dis peut-être une bêtise, mais en regardant dans la base de registre HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
TailleResultat=AppelDLL32("kernel32","GetEnvironmentVariableA","USERNAME",&resultat,TailleMax) SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$
Truc con, RéseauUtilisateur() ne va pas ?????
-- Pascal ROY (Service Informatique - SODALEC)
Bonjour j'ai exploré aussi cette solution mais elle ne fonctionne pas sous
vista... Je ne trouve pas dans la base de registre vista la clé citée ni une
clé correspondante
"Pascal ROY" <pascal.roy@sodalec.fr> a écrit dans le message de
news:h5djsn$58b$1@s1.news.oleane.net...
Je dis peut-être une bêtise, mais
en regardant dans la base de registre
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer
La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024
TailleMax est un entier système = 1024
TailleResultat est un entier système
TailleResultat=AppelDLL32("kernel32","GetEnvironmentVariableA","USERNAME",&resultat,TailleMax)
SI TailleResultat > 0 ALORS Info(resultat)
SINON //
FIN
Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" <fredo@hotmail.com> a écrit dans le message de
news:4a799be0$0$22634$426a74cc@news.free.fr...
Bonjour j'ai exploré aussi cette solution mais elle ne fonctionne pas sous vista... Je ne trouve pas dans la base de registre vista la clé citée ni une clé correspondante
"Pascal ROY" a écrit dans le message de news:h5djsn$58b$
Je dis peut-être une bêtise, mais en regardant dans la base de registre HKCUSoftwareMicrosoftWindowsCurrentVersionExplorer La Clef "Logon User Name" ne contient pas la valeur que tu recherches ?
Thierry 46 a écrit :
Bonsoir,
Je ne suis pas un spécialiste mais ce code me donne le même résultat
resultat est une chaîne ASCIIZ sur 1024 TailleMax est un entier système = 1024 TailleResultat est un entier système
TailleResultat=AppelDLL32("kernel32","GetEnvironmentVariableA","USERNAME",&resultat,TailleMax) SI TailleResultat > 0 ALORS Info(resultat) SINON // FIN Jean-Luc Baptiste a écrit :
Non, ca ne marche pas !
"Fredo G-MDI" a écrit dans le message de news:4a799be0$0$22634$