Récup le nom utilisateur

Résolu
Signaler
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006
-
Bonjour!
je débute en C++ et je voudrai savoir s'il existe une fonction qui permet de récupérer le nom de l'utilisateur ki est connecté sur l'ordinateur?
Pouvez vous me donner quelques explications concernant cette fonction?

Merci

blizzon

9 réponses

Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007

Salut,

Si tu bosses sous Microsoft Windows, le nom de l'utilisateur courant (et bien d'autres choses) est stocké dans une variable d'environnement : USERNAME
.

Pour récupérer cette variable d'environnement, tu peux utiliser la fonction getenv :

int main(int argc, char** argv)
{
char* sUtilisateur;
sUtilisateur = getenv("USERNAME");
if (sUtilisateur != NULL)
printf("Utilisateur courant = %s\n", sUtilisateur);
return(0);
}

Mis à part cette solution, les API Windows doivent sans doute fournir une fonction particulière, mais je ne la connais pas (je regarde cela...).

En espérant t'avoir un peu aidé,
Ciao.

PS . La MSDN parle =/library/en-us/vclib/html/_crt_getenv.2c_._wgetenv.asp icide d'implémentation par Microsoft de la fonction getenv.
Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007

Le truc, dans la fonction GetUserName, c'est que les paramètres est utilisé comme "valeur de retour" :
- la chaîne lpBuffer pour le nom d'utilisateur ;
- le DWORD nSize pour la longueur de la chaîne contenant le nom d'utilisateur (pas vérifié, mais je suppose...).

La valeur booléenne retournée précise si l'opération s'est, ou non, bien déroulée.

Bonne journée.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
char buf[260];
DWORD len = 260;

if(!GetUserName(buf, &len)) ERREUR

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
BOOL GetUserName(
LPTSTR lpBuffer,
LPDWORD nSize
);


Voir MSDN, c'est trivial.

ciao...
BruNews, MVP VC++
Messages postés
209
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
14 août 2007

Ah ! voilà, en effet, la routine GetUserName.
Merci à BruNews.
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006

merci meech, je vai regarder si ton code convien. je vous retien au courant.

blizzon
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006

oui mais GetUserName, sous visual C++, renvoi un bool.donc g pris ta fonction meech.
merci a vous deux!

blizzon
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006

merci beaucoup pour cette explication. le code que tu ma donné fonction a merveille.
je vai essayé de le faire avec GetUserName.

Merci encore!

blizzon
Messages postés
23
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
4 mai 2006

merci BruNews ca marche également!

re vous remerci de votre aide! je suis bien content que ca marche, cela me fait beaucoup avancé dans mon projet!

blizzon