1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Connaitre le nom du compte de l'utilisateur Windows qui exécute votre application [Code Source WD]

Discussion dans 'Windev' créé par Pascal, Fev 25, 2018.

  1. Pascal

    Pascal Active Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    82
    J'aime reçus:
    126
    Bonjour tout le monde,

    Si cela vous intéresse ou peut aider quelqu'un d'autre, vous trouverez ci-dessous un code qui permet de connaitre le nom du compte de l'utilisateur Windows qui exécute votre application avec la fonction "GetUserName" de l'API "advapi32.dll".

    [​IMG]
    La constante à déclarer :
    Code (Text):

    CONSTANT
       ERROR_INSUFFICIENT_BUFFER = 122 // The data area passed to a system call is too small (winerror.h).
    FIN
     
    Les fonctions à déclarer :
    Code (Text):

    // Résumé : The GetUserName function retrieves the name of the user associated with the current thread.
    // Syntaxe :
    //[ <Résultat> = ] GetUserName ()
    //
    // Paramètres :
    //   Aucun
    // Valeur de retour :
    //    chaîne : //    A string to receive the user's logon name.
    //
    // Exemple :
    // https://msdn.microsoft.com/en-us/library/windows/desktop/ms724432(v=vs.85).aspx
    //
    PROCEDURE GetUserName()

    LOCAL
       nResult est un entier = 0
       bufName est un Buffer = ""
       nSize est un entier = 0
       sName est une chaîne = ""
       
    nResult = API("advapi32.dll", "GetUserNameA", &bufName, &nSize)

    SI ((nResult = 0) ET (GetLastError() = ERROR_INSUFFICIENT_BUFFER)) ALORS
       SI (nSize > 0) ALORS bufName = Répète(Caract(0),nSize)
       nResult = API("advapi32.dll", "GetUserNameA", &bufName, &nSize)
    FIN

    SI (nResult = 0) ALORS sName = "" SINON sName = ChaîneRécupère(&bufName,crAdresseASCIIZ)

    RENVOYER (sName)

    // Résumé : The GetLastError function retrieves the calling thread's last-error code value. The last-error code is maintained on a per-thread basis. Multiple threads do not overwrite each other's last-error code.
    // Syntaxe :
    //[ <Résultat> = ] GetLastError ()
    //
    // Paramètres :
    //   Aucun
    // Valeur de retour :
    //    entier : // The return value is the calling thread's last-error code.
    //
    // Exemple :
    // http://msdn.microsoft.com/en-us/library/windows/desktop/ms679360(v=vs.85).aspx
    //
    PROCEDURE GetLastError()

    LOCAL
       nError est un entier
       
    // Appel pour avoir les informations.
    nError = API("Kernel32.dll","GetLastError")

    RENVOYER(nError)
     
    La DLL à charger :
    Code (Text):

    gnMy_DLL est un entier = 0
    gnMy_DLL = ChargeDLL("advapi32.dll")
     
    Le code pour utiliser la fonction "GetUserName" (pour l'exemple mettre ce code dans un bouton) :
    Code (Text):

    LOCAL
       sUser_Logon est une chaîne = ""
       
    sUser_Logon = GetUserName()

    SI (sUser_Logon = "") ALORS
       Trace("GetUserName failed with error : " + NumériqueVersChaîne(GetLastError()))
       Trace(ErreurInfo())
    SINON
       Trace("The user's logon name is : " + sUser_Logon)
    FIN
     
    La DLL à décharger :
    Code (Text):

    SI (gnMy_DLL) ALORS DéchargeDLL(gnMy_DLL)
     
    Voila c'est fini. Maintenant vous pouvez connaitre le nom du compte de l'utilisateur Windows qui exécute votre application.

    Code source et exécutable au format windev 15 :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Bon dev à vous tous !!!!

    Cordialement,
    Pascal
     
  2. michel

    michel Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    174
    J'aime reçus:
    599
    Merci Infiniment Pascal pour le partage du code et du lien.

    Cordialement
     
    Pascal apprécie ceci.
  3. ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    372
    J'aime reçus:
    373
    Très grand merci Pascal pour le partage!
     
    Pascal apprécie ceci.
  4. Yusep

    Yusep Active Member
    DUMP TEAM

    Inscrit:
    Jan 3, 2018
    Messages:
    210
    J'aime reçus:
    158
    Merci beaucoup et surtout pour mettre les exemples avec une vielle version de windev.
     
    Pascal apprécie ceci.
  5. Wafi_bba

    Wafi_bba Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    42
    J'aime reçus:
    56
    super merci
     
    Pascal apprécie ceci.
  6. Pascal

    Pascal Active Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    82
    J'aime reçus:
    126

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Merci beaucoup et surtout pour mettre les exemples avec une vielle version de windev.
    Cliquez pour agrandir...
    De rien Yusep.

    Cordialement,
    Pascal
     
  • cyberripper

    cyberripper Active Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 26, 2018
    Messages:
    76
    J'aime reçus:
    176
    Merci Pascal

    @+ Cyber
     
    Pascal apprécie ceci.
  • aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Je pense que cette fonction joue le même rôle.
    A vérifier !!!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Code (Text):
    RéseauUtilisateur()
     
    Pascal apprécie ceci.
  • Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    578
    J'aime reçus:
    866

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Je confirme, cette fonction retourne la même chose :)

    Bien cordialement
     
    Pascal apprécie ceci.
  • Partager cette page

    Chargement...