PureBasic

Forums PureBasic
Nous sommes le Lun 24/Juin/2019 19:09

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Récupérer les informations de l'uilisateur
MessagePosté: Sam 04/Fév/2012 18:51 
Hors ligne

Inscription: Mer 11/Fév/2004 0:32
Messages: 1015
Localisation: Québec, Canada
Bonjour à tous,

un petit code intéressant pour récupérer les informations à propos de l'utilisateur sous Linux :

Code:
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Project name : User Informations
; File Name : UserInformations.pb
; File version: 1.0.0
; Programmation : OK
; Programmed by : remi_meier
; Additional programming by : Guimauve
; Date : 04-02-2012
; Last Update : 04-02-2012
; PureBasic code : 4.61
; Plateform : Linux
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Structure passwd
   *pw_name.ascii;       /* username */
   *pw_passwd.ascii;     /* user password */
   pw_uid.l;        /* user ID */
   pw_gid.l;        /* group ID */
   *pw_gecos.ascii;      /* real name */
   *pw_dir.ascii;        /* home directory */
   *pw_shell.ascii;      /* shell program */
EndStructure

ImportC ""
   getuid.l()
   getpwuid.i(uid.l)
EndImport


Procedure.s UserName()
   
   Protected *login.passwd
   
   *login = getpwuid(getuid())
   
   If *login
      ProcedureReturn PeekS(*login\pw_name, -1, #PB_Ascii)
   EndIf
   
EndProcedure

Procedure.s RealUserName()
   
   Protected *login.passwd
   
   *login = getpwuid(getuid())
   
   If *login
      ProcedureReturn PeekS(*login\pw_gecos, -1, #PB_Ascii)
   EndIf
   
EndProcedure

Procedure UserID()
   
   Protected *login.passwd
   
   *login = getpwuid(getuid())
   
   If *login
      ProcedureReturn *login\pw_uid
   EndIf
   
EndProcedure

Procedure GroupID()
   
   Protected *login.passwd
   
   *login = getpwuid(getuid())
   
   If *login
      ProcedureReturn *login\pw_gid
   EndIf
   
EndProcedure

Procedure.s ShellProgram()
   
   Protected *login.passwd
   
   *login = getpwuid(getuid())
   
   If *login
      ProcedureReturn PeekS(*login\pw_shell, -1, #PB_Ascii)
   EndIf
   
EndProcedure

Procedure.s HomeDirectory() ; Useless, since we have GetHomeDirectory()
   
   Protected *login.passwd, HomeDirectory.s
   
   *login = getpwuid(getuid())
   
   If *login
      
      HomeDirectory = PeekS(*login\pw_dir, -1, #PB_Ascii)
      
      If Right(HomeDirectory, 1) <> "/"
         HomeDirectory + "/"
      EndIf
      
      ProcedureReturn HomeDirectory
      
   EndIf
   
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<<
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<<
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Debug UserName()
Debug RealUserName()
Debug UserID()
Debug GroupID()
Debug ShellProgram()
Debug HomeDirectory()

; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<

Testé sous Linux Mint 12 x 64 + Gnome-Shell, Fonctionne à 100%

A+
Guimauve


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye