Obtenir le nom d'utilisateur actuel en C++ sur Windows
Je cherche à créer un programme qui récupère le courant de l'utilisateur nom d'utilisateur sur Windows à l'aide de C++.
J'ai essayé ceci:
char *userName = getenv("LOGNAME");
stringstream ss;
string userNameString;
ss << userName;
ss >> userNameString;
cout << "Username: " << userNameString << endl;
Rien n'est délivrée à l'exception de "nom d'utilisateur:".
Quel est le plus simple, la meilleure manière d'obtenir le nom d'utilisateur?
En outre, cela pourrait vous aider: cplusplus.com/forum/beginner/12076
Vous ne devriez pas utiliser des variables d'environnement pour récupérer le nom d'utilisateur. Il n'est pas garanti d'exister. En général, en dehors d'un fichier BAT, vous ne devriez pas utiliser des variables d'environnement.
Si vous devez utiliser une variable d'environnement pour récupérer le nom d'utilisateur, le bon est
Vous ne devriez pas utiliser des variables d'environnement pour récupérer le nom d'utilisateur. Il n'est pas garanti d'exister. En général, en dehors d'un fichier BAT, vous ne devriez pas utiliser des variables d'environnement.
Si vous devez utiliser une variable d'environnement pour récupérer le nom d'utilisateur, le bon est
USERNAME
pas LOGNAME
. Vous pouvez également USERDOMAIN
.
OriginalL'auteur Andrew | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
Utiliser le Win32API
GetUserName
fonction. Exemple:UNLEN+1
deLmcons.h
merci, j'ai édité. Avez-vous, par hasard, savoir si ou de ne pas
<windows.h>
comprend<Lmcons.h>
?Je suis sur mon Mac, mais si ma mémoire est bonne, la réponse est Non. LANMAN les en-têtes doivent être mis en sur séparément, et je pense que cet exemple est d'accord.
Je suis en train de l'utiliser pour un chemin de fichier. Est-il un raccourci ou sont des fonctions-elle toujours nécessaire?
Le bureau de l'utilisateur n'est pas toujours dans c:\Users\<nom d'utilisateur>\Desktop. Vous devez utiliser la SHGetFolderPath ou SHGetKnownFolderPath fonction, selon la version(s) de Windows que vous avez écrit.
OriginalL'auteur orlp
Sur windows utiliser nom d'utilisateur de l'environnement de variable ou GetUserName fonction
OriginalL'auteur parapura rajkumar
Code corrigé qui a fonctionné pour moi:
Je suis à l'aide de Visual Studio Express 2012 (sur Windows 7), peut-être qu'il fonctionne de la même façon avec Dev-Cpp
OriginalL'auteur jyz
Cela fonctionne:
OriginalL'auteur Anna Eurich
Vous devez utiliser la variable env nom d'utilisateur.
set username=SomeOneElse launchYourApp
, et qu'il va effectivement être en cours d'exécution de votre application SomeOneElse. Cela peut être une faille de sécurité.OriginalL'auteur Van Zuzu