1. #1
    Membre expert Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2011
    Messages
    2 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2011
    Messages : 2 304
    Points : 3 813
    Points
    3 813

    Par défaut Obtenir le nom complet de l'utilisateur sous Windows

    Bonjour,

    Je cherche à obtenir le nom complet de l'utilisateur, sous Windows 10 avec un domaine & active directory.

    J'obtiens le login avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Function Fgbo_initappli : Boolean;
    Var
    	pBuffer 	: Array[0..255] Of Char;
    	dwl_Buffer	: DWORD;
    Begin
    	Result := True;
    	Try
    	   dwl_Buffer := 256;
    	   If GetUserName( pBuffer, dwl_Buffer) Then //dans l'unité Windows
    	   Begin
    	      cg_usrlog := pBuffer;
    	   End
    	   Else Begin
    	      cg_usrlog := '<Erreur Windows>';
    	      Result := False;
    	   End;
    	Except
               Result := False;
    	End;
    End;
    Mais j'aimerais aussi récupérer le nom complet associé au Login. Je ne trouve pas la fonction qui me permettrai de le faire.
    Avez-vous une idée, voire un code ?

    Merci d'avance
    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Membre expert
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    décembre 2008
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2008
    Messages : 1 489
    Points : 3 543
    Points
    3 543

    Par défaut

    hello,
    tu peux essayer de faire une requête wmi sur la classe Win32_NetworkLoginProfile en cherchant les bonnes propriétés.
    Pour faire cette requête sous lazarus le plus simple est d'utiliser l'unité utilwmi que j'ai développé avec Molly et qui est disponible ici
    cette unité possède la fonction getwmiinfo qui permet de chercher des infos par wmi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Function GetWMIInfo(const WMIClass: string ; const WMIProperty:tstringList;
                         const Condition: string = ''):tlist;
    WMIClass : Class in which to find infos example : Win32_NetworkAdapter
    WMIProperty : a list of properties to get example : Name,MACAddress
    Condition : a Condition to limit results example : WHERE NETENABLED = TRUE

    le résultat est une liste de propriétés.
    Voici un exemple d'utilisation dans le cas qui t'interesse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // unités à ajouter 
    implementation
    uses  utilwmi, contnrs;
    // ....
     
    var WMIResult         : TFPObjectList;
     f             : integer;
     retVal            : String;
    begin
      WMIResult := GetWMIInfo('Win32_NetworkLoginProfile', ['Name', 'FullName', 'Description'],
                              'WHERE FullName is not NULL');
      for f := 0 to Pred(WMIResult.Count) do
      begin
        retVal := TStringList(WMIResult[f]).ValueFromIndex[0] + ' - FullName : ' +
                  TStringList(WMIResult[f]).ValueFromIndex[1] +  ' - Descript : ' +
                  TStringList(WMIResult[f]).ValueFromIndex[2];
        Memo1.Lines.add(Retval);
      end;
      WMIResult.Free;
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre expert Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2011
    Messages
    2 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2011
    Messages : 2 304
    Points : 3 813
    Points
    3 813

    Par défaut

    Merci,

    Super unité... Joli travail.

    A+
    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Créer utilisateurs sous Windows 2003 Server en Batch
    Par anthony0742 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 26/05/2009, 11h46
  2. Obtenir le nom complet d'une variable à partir de pageContext
    Par elmessoussi dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/03/2008, 18h04
  3. Comptes utilisateurs sous windows xp
    Par caro_caro dans le forum Windows XP
    Réponses: 1
    Dernier message: 13/02/2008, 21h27
  4. simuler un utilisateur ? (sous windows)
    Par ramislebob dans le forum Langage
    Réponses: 6
    Dernier message: 13/07/2006, 17h36
  5. Comment obtenir le nom complet d'un lecteur réseau ?
    Par Speed41 dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 26/08/2004, 07h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo