API GetUserName pour Access 2

28/10-2002 à 20:26Salut,
Je cherche l'équivalent de l'API GetUserName de Access 2000 (qui est une 32 bits) pour Access 2. En bref je veux récupérer le nom de la personne connéctée sur le PC. Mais Access ne gère que les API 16 bits !!!
Quelqu'un peut m'aider ?
Merci


----------
maik le barbu - workman isolé



28/10-2002 à 22:42Tu peux soit utiliser ceci

Sub UserData()
userdir = Environ("userprofile") ' répertoire du user actuel
user = Environ("username") ' nom du user
MsgBox userdir
MsgBox user
End Sub

ou alors

Declare Function RecupNomUtilisateur Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function NomUtilisateur() As String
Dim StrNomUtilisateur As String
Dim Resultat As Long ' Contiendra simplement 1 si l'appel s'est bien déroulé
StrNomUtilisateur = String$(255, 0)
Resultat = RecupNomUtilisateur(StrNomUtilisateur, 255)
If Resultat = 1 Then
NomUtilisateur = StrNomUtilisateur
Else
NomUtilisateur = "UTILISATEUR INCONNU"
End If
End Function

Par un curieux hasard, je suis également occupé avec ce problème, et j'ai remarqué ceci sous NT4 et Access 97, avec le Service Pack 4 aucun problème les fonctions sont reconnues, mais avec le Service Pack 6 : Bernique, ça ne marche plus...donc ATTENTION !

Demain, je vais tenter deux choses, la première appliquer les Services Pack 1 et 2 de MSOffice, ou alors, récupérer la dll du ServicePack4 de NT et l'injecter sous un autre nom, corriger la fonction en conséquence...

Avec Access 2000 il n'y a aucun problème, elle fonctionne...


----------
Bipbipcoyote image


API GetUserName pour Access 2
28/10-2002 à 22:44Pour achever mon explication :

pour Access 2 tu devrais essayer de trouver cette dll sous Win95 ou Win4.0 SP4...


----------
Bipbipcoyote image


28/10-2002 à 22:59ça peut marcher, je viens de faire l'expérience sous XP j'ai recopié advapi32.dll dans son répertoire c:\windows\system32 et j'ai renommé cette copie en advapi34.dll

la déclaration devient donc

Declare Function RecupNomUtilisateur Lib "advapi34.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

je n'ai pas de message d'erreur....je confirme demain si cette astuce peut fonctionner en milieu hostile (SP6)


----------
Bipbipcoyote image


29/10-2002 à 20:42Merci BipBipCoyote
je vais essayer de mon côté
@+


----------
maik le barbu - workman isolé


API GetUserName pour Access 2
29/10-2002 à 21:04

cette astuce peut fonctionner en milieu hostile (SP6)

bin non, pas de bol ...sous winnt 4 avec SP6 ça foire, je ne parviens pas à contourner le message d'erreur,(même en plaçant une copie de la dll du SP4 sous un autre nom ou avec les SP's Office97 installés) il va donc falloir créer un groupe de travail Access , l'utilisateur sera alors reconnu avec CurrentUser pour savoir comment faire www.info-3000.com/access/astuceresecurite.htm


----------
Bipbipcoyote image


Le post anonyme est désactivé.
Merci de vous identifier

« Forum technique (liste des messages)6 enregistrements / page 1/1