un petit code intéressant pour récupérer les informations à propos de l'utilisateur sous Linux :
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; 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 <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<
A+
Guimauve