OVH Cloud OVH Cloud

récupérer le nom de l"utilisateur de win 2000

6 réponses
Avatar
dav
comment dans un petit programme VB récupérer les données utilisateur de
win 2000, à savoir son nom d'utilisateur et son domain, le nom du pc,
etc... ? existe t-il des constantes pour ça ?
merci,
dav

6 réponses

Avatar
François Picalausa
Hello,

son nom d'utilisateur


Tu peux récupérer ce nom via l'API GetUserName:

Private Const ERROR_INSUFFICIENT_BUFFER = 122
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
( _
ByVal lpBuffer As String, _
nSize As Long _
) _
As Long

Public Function UserName() As String
Dim ReqSize As Long
UserName = String$(0, vbNullChar)
GetUserName UserName, ReqSize
If Err.LastDllError = ERROR_INSUFFICIENT_BUFFER Then
UserName = String$(ReqSize, vbNullChar)
GetUserName UserName, ReqSize
UserName = Left$(UserName, ReqSize - 1)
End If
End Function

MsgBox UserName

Ou au moyen de la variable d'environnement correspondante:
MsgBox Environ$("USERNAME")

le nom du pc


A partir de l'API GetComputeName :
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName _
Lib "kernel32" _
Alias "GetComputerNameA" _
( _
ByVal lpBuffer As String, _
nSize As Long _
) _
As Long

Public Function ComputerName() As String
Dim ReqSize As Long

ReqSize = MAX_COMPUTERNAME_LENGTH
ComputerName = String$(ReqSize, vbNullChar)
GetComputerName ComputerName, ReqSize
ComputerName = Left$(ComputerName, ReqSize)
End Function

MsgBox ComputerName

Ou de la variable d'environnement:
MsgBox Environ$("COMPUTERNAME")

son domaine


Tu peux jeter un oeil ici:
http://vbnet.mvps.org/index.html?code/network/getdomainname.htm
et aussi à l'API GetComputerNameEx, pour win 2k/XP uniquement

--
François Picalausa

"dav" a écrit dans le message de news:
41c539ef$0$22342$
comment dans un petit programme VB récupérer les données utilisateur
de win 2000, à savoir son nom d'utilisateur et son domain, le nom du
pc, etc... ? existe t-il des constantes pour ça ?
merci,
dav


Avatar
dav
François Picalausa a écrit :
Hello,


son nom d'utilisateur



Tu peux récupérer ce nom via l'API GetUserName:

Private Const ERROR_INSUFFICIENT_BUFFER = 122
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
( _
ByVal lpBuffer As String, _
nSize As Long _
) _
As Long

Public Function UserName() As String
Dim ReqSize As Long
UserName = String$(0, vbNullChar)
GetUserName UserName, ReqSize
If Err.LastDllError = ERROR_INSUFFICIENT_BUFFER Then
UserName = String$(ReqSize, vbNullChar)
GetUserName UserName, ReqSize
UserName = Left$(UserName, ReqSize - 1)
End If
End Function

MsgBox UserName

Ou au moyen de la variable d'environnement correspondante:
MsgBox Environ$("USERNAME")


le nom du pc



A partir de l'API GetComputeName :
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName _
Lib "kernel32" _
Alias "GetComputerNameA" _
( _
ByVal lpBuffer As String, _
nSize As Long _
) _
As Long

Public Function ComputerName() As String
Dim ReqSize As Long

ReqSize = MAX_COMPUTERNAME_LENGTH
ComputerName = String$(ReqSize, vbNullChar)
GetComputerName ComputerName, ReqSize
ComputerName = Left$(ComputerName, ReqSize)
End Function

MsgBox ComputerName

Ou de la variable d'environnement:
MsgBox Environ$("COMPUTERNAME")


son domaine



Tu peux jeter un oeil ici:
http://vbnet.mvps.org/index.html?code/network/getdomainname.htm
et aussi à l'API GetComputerNameEx, pour win 2k/XP uniquement




utiliser la variable ENVIRON$ semble plus rapide et utilise moins de
code, non ? alors pourquoi ne pas la privilégier ?
d'autre part, je suppose que cette variable est liée à ton système
d'exploitation, est ce applicable dans tous les environnements ?.
merci,
Avatar
scraper
Bonjour dav
(dans news:41c55cc8$0$9524$)
tu nous disais :

utiliser la variable ENVIRON$ semble plus rapide et utilise moins de
code, non ? alors pourquoi ne pas la privilégier ?
d'autre part, je suppose que cette variable est liée à ton système
d'exploitation, est ce applicable dans tous les environnements ?.
merci,



peut être un élément de réponse ...

je ne crois pas que cette variable soit dispo sur tous les systemes ??



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Jean-Marc
"dav" a écrit dans le message de
news:41c55cc8$0$9524$
François Picalausa a écrit :
> Hello,
>
>
utiliser la variable ENVIRON$ semble plus rapide et utilise moins de
code, non ? alors pourquoi ne pas la privilégier ?
d'autre part, je suppose que cette variable est liée à ton système
d'exploitation, est ce applicable dans tous les environnements ?.




Hello,

la fonction Environ est disponible sur tous les systèmes. C'est une
fonction de VB qui permet de connaitre la liste est les valeurs des
variables d'environnement. Quand aux différentes variables
d'environnement, évidemment la liste dépend de l'OS. Mais les 2 dont tu
as besoin ici sont définies sous XP et sous 2000.

Quand à pourquoi privilégier Environ ou les API, c'est une simple
affaire de choix. Ca ne relève que d'une histoire de préférence.
Certains aiment utiliser les variables d'environnments, d'autres
n'aiment pas ça et préfèrent les API. Affaire de goût.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
scraper
Bonjour Jean-Marc
(dans news:41c5a36d$0$25059$)
tu nous disais :

Hello,

la fonction Environ est disponible sur tous les systèmes. C'est
une fonction de VB qui permet de connaitre la liste est les
valeurs des variables d'environnement. Quand aux
différentes variables d'environnement, évidemment la liste dépend
de l'OS. Mais les 2 dont tu as besoin ici sont définies sous XP et
sous 2000.



humm .. je me suis en effet mal exprimé !
c'est bien évidemment de la liste des variables d'environnement accessibles
que je pensais ...

par exemple, sous 9x/Me, c'est extrêmement pauvre, tu n'as pas accès à
HomeDrive, HomePath, etc ...
(sauf erreur de ma part ?)



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Zoury
Salut!

on peut aussi préciser que .. :

1. Les valeurs offertes par la fonction Environ$() sont en fait une capture
(snap-shot) des valeurs de variables environnements au moment où le
programme à démarrer.. Donc certaines valeurs pourraient être asynchrone
avec le système si, par exemple, elles étaient modifiées (par un processus
quelconque) entre le démarrage du programme et l'appelle de la fonction.

2. Même si [s = Environ$("blablabla")] utilise moins de code que la version
API, il est généralement beaucoup plus rapide à l'exécution d'employer cette
dernière. Il est toutefois évident qu'une telle optimisation n'est
évidemment par toujours nécessaire. :O)

--
Cordialement
Yanick
MVP pour Visual Basic
"Jean-Marc" a écrit dans le message de
news:41c5a36d$0$25059$
"dav" a écrit dans le message de
news:41c55cc8$0$9524$
> François Picalausa a écrit :
> > Hello,
> >
> >
> utiliser la variable ENVIRON$ semble plus rapide et utilise moins de
> code, non ? alors pourquoi ne pas la privilégier ?
> d'autre part, je suppose que cette variable est liée à ton système
> d'exploitation, est ce applicable dans tous les environnements ?.


Hello,

la fonction Environ est disponible sur tous les systèmes. C'est une
fonction de VB qui permet de connaitre la liste est les valeurs des
variables d'environnement. Quand aux différentes variables
d'environnement, évidemment la liste dépend de l'OS. Mais les 2 dont tu
as besoin ici sont définies sous XP et sous 2000.

Quand à pourquoi privilégier Environ ou les API, c'est une simple
affaire de choix. Ca ne relève que d'une histoire de préférence.
Certains aiment utiliser les variables d'environnments, d'autres
n'aiment pas ça et préfèrent les API. Affaire de goût.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."