cs_pimousse75
Messages postés138Date d'inscriptionjeudi 17 janvier 2002StatutMembreDernière intervention22 octobre 2002 30 janv. 2002 à 13:18
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'Pour Recuperer le login windows
'Dim sBuffer As String
'Dim lSize As Long
'
'' Allocation de la taille du buffer de réception
'sBuffer = Space$(255)
'lSize = Len(sBuffer)
'
'' La DLL retourne l'utilisateur connecté sur cette machine
'Call GetUserName(sBuffer, lSize)
'txtNomUtilisateur.Text = sBuffer
chipaolee
Messages postés23Date d'inscriptionlundi 6 août 2001StatutMembreDernière intervention14 avril 2005 5 févr. 2002 à 11:57
Je ne connais pas le moyen de récupérer le mot de passe de l'utilisateur
mais je pense que la protection par NT doit être assez musclée en encore
plus sur réseau sinon à quoi servirait le mot de passe si une simple
fonction API peut le faire sauter.
Par contre pour récupérer le login (pas le UserName de la machine), je te propose ci-dessous une solution
Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVallpName
As String, ByVal lpUserName As String, lpnLength As Long) As Long
Const NoError = 0
Function GetUserName()
Const lpnLength As Integer = 255
Dim status As Integer
Dim lpName, lpUserName As String
lpUserName = Space$(lpnLength + 1)
status = WNetGetUser(lpName, lpUserName, lpnLength)
If status = NoError Then
lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
Else
MsgBox "Impossible d'obtenir le login."
End
End If
GetUserName = lpUserName
End Function
cs_zack
Messages postés10Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention 7 février 2002 5 févr. 2002 à 12:11
Je tiens a apporter mon approbation a chipaolee je pense que pimousse (comme son pseudo l'indique) est encore puceau en matière de programmation.
Il pensait épater la galerie en utilisant une API mais ce system n'est pas très fiable. En tant que développeur dans une grosse société informatique nous utilisons (bien que + évolué) le procéder mise en place par chipaolee. Donc bravo a toi chipaolee quand a pimousse je pense que quelque cours ne lui ferait pas de mal.
bonne journée.
cs_pimousse75
Messages postés138Date d'inscriptionjeudi 17 janvier 2002StatutMembreDernière intervention22 octobre 2002 5 févr. 2002 à 12:19
Mon cher Zack,
je trouve ton jugement un peu hâtif. Je n'ai aucunement prétenu faire un coucours de prog mais simplement laisser la trace d'une autre solution possible pour capitaliser le savoir. Quant à mon pseudo il n'a rien à voir avec mes compétences, et pour ta gouverne tu n'es pas le seul à travailler dans une grosse société...
Vous n’avez pas trouvé la réponse que vous recherchez ?
triners
Messages postés3Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention11 juillet 2002 15 févr. 2002 à 12:07
Je suis sous sous WinXP et Excel XP et le code ne fonctionne pas soit il me manque un bout du code en VBA par rapport aux propositions du forum ou ils ont changé quelquechoses entre 2000 et XP,
j'aimerais savoir si quelqu'un a une solution
Merci d'avance
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 20 sept. 2004 à 10:13
Essayes-ca:
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function WhoIs() As String
Dim strUserName As String
Dim lngLenght As Long
Dim lngResult As Long
'Créé le tampon
strUserName = String$(255, 0)
lngLenght = 255
'Effectue l'appel
lngResult = GetUserName(strUserName, lngLenght)
'Nettoie et affecte la valeur
WhoIs = Left(strUserName, InStr(1, strUserName, Chr(0)) - 1)
End Function
Ensuite tu n'as plus qu'à utiliser la fonction pour récupérer le username: