[Tuto] Récupérer son nom d'utilisateur Windows

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

[Tuto] Récupérer son nom d'utilisateur Windows

Message par Ar-S »

Voilà un petit exemple permettant de récupérer votre nom utilisateur sous windows.

Utilisation de :
- GetHomeDirectory()
- Left
- RemoveString

Le code :


Enumeration
#FEN
#CLICK
EndEnumeration

Procedure FindUserName() ; Par Ar-S - 2007
; On chope le chemin complet
ChemUserName$= GetHomeDirectory ()
; On part de la gauche et on compte 26 caractères, le resultat devient RepUser$
RepUser$= Left (ChemUserName$,26)
; On supprime dans le chemin complet les caracters de RepUser$, il reste donc le nom d'utilisateur + le slash
; qui devient UseNametemp$
UserNameTemp$= RemoveString (ChemUserName$,RepUser$)
; On supprime le Slash du nom d'utilisateur, le resultat devient Username$
UserName$= RemoveString (UserNameTemp$, Chr (92))

;---test pour voir si tout se passe bien-----
MessageRequester ( "Affiche !" , "Le chemin complet" + Chr (10)+ " => " +ChemUserName$+ Chr (10)+ Chr (10)+ "On compte 26 caracteres en partant du début du chemin complet ce qui donne :" + Chr (10)+ " => " +RepUser$+ Chr (10)+ " 123456789.................26" + Chr (10)+ Chr (10)+ "On enlève ensuite les caracteres " +RepUser$+ Chr (10)+ "au chemin complet : " +ChemUserName$+ Chr (10)+ Chr (10)+ "Il reste donc le Nom d'utilisateur avec le slash \ (\=chr(92))" + Chr (10)+ " => " +UserNameTemp$+ Chr (10)+ Chr (10)+ "Enfin, on suprime le '\' au nom trouvé précédement" + Chr (10)+ " => " +UserName$+ Chr (10)+ Chr (10)+ "Et Voilou ; )" )
;---FIN test---------------------------------
EndProcedure

Procedure OpenWindow_FEN()
If OpenWindow ( #FEN , 318, 438, 236, 60, "Afficher UserName par Ar-S" , #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_TitleBar )
If CreateGadgetList ( WindowID ( #FEN ))
ButtonGadget ( #CLICK , 5, 5, 225, 50, "Afficher le Nom d'utilisateur Windows" , #BS_FLAT )
EndIf
EndIf
EndProcedure

OpenWindow_FEN()
Repeat
Event = WaitWindowEvent ()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget ()
EventType = EventType ()
If EventGadget = #CLICK
;si clique alors on lance la procédure FindUserName() ci-dessus
FindUserName()
EndIf
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow ()
If EventWindow = #FEN
CloseWindow ( #FEN )
Break
EndIf
EndSelect
ForEver
;
;}




Voilou :P
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Message par Fortix »

Salut @r-s,

Mais tu sais qu'il y a plus simple 8O :

Debug GetEnvironmentVariable("username")


mdr :lol:
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

effectivement sa reduit de pas mal quand meme :wink: :lol: .



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Fortix a écrit :Salut @r-s,

Mais tu sais qu'il y a plus simple 8O :

Debug GetEnvironmentVariable("username")


mdr :lol:
arf , j'ai meme pas vérifié :lol:

amenez moi un Fouet !! je m'occupe d' Ar-s :twisted:


toutefois je vais laisser son code, car la demarche est bien commenté !! :D
Dernière modification par Backup le lun. 24/sept./2007 20:28, modifié 1 fois.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@ Ar-S

Bienvenue dans mon monde où l'on cherche sans cesse.
Parfois c'est complètement débile, parfois c'est une idée de génie.

Alors, surtout ne t'inquiète pas: Quelqu'un m'a renseigné à ce sujet et m'a parlé de biorythme (n'est-ce pas Dobro :D ).

Des fois on est six pieds sous l'eau avec son code. Des fois, on fait décoller son code tellement haut que l'on ne sait plus où l'on est tellement on est content.

Pour l'instant, moi j'en suis à peu près à un stade carrément pire que ça, donc ne t'inquiète pas...
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Ar-S=> ya aps moyen de faire apparaitre le mdp avec ? :lol:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Ollivier a écrit :Pour l'instant, moi j'en suis à peu près à un stade carrément pire que ça, donc ne t'inquiète pas...
tu veux rire ?
la qualité de tes codes font honneur au forum. et on t'en remercie.

sinon, puisque les fonctions de l'API Win32 sont à la mode :

Code : Tout sélectionner

Procedure.s GetUserName()
  Protected length.l = 255, result.s = Space(length)
  If GetUserName_(@result, @length)
    ProcedureReturn Left(result, length)
  EndIf
EndProcedure

Procedure.s GetComputerName()
  Protected length.l = 255, result.s = Space(length)
  If GetComputerName_(@result, @length)
    ProcedureReturn Left(result, length)
  EndIf
EndProcedure

Debug GetUserName()
Debug GetComputerName()
Image
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Fortix a écrit :Salut @r-s,

Mais tu sais qu'il y a plus simple 8O :

Debug GetEnvironmentVariable("username")


mdr :lol:
Arrgggg je meurs à petit feu tel la merguez sur son barbecue !

Bon c'est pas bien grave, ça m'a permis de travailler avec la manipulation des strings (quel coquin je fais=>string...), et pour les gros newbies comme moi, ça ne peu que faire du bien :)

Faut dire, ou trouves tu ça dans l'aide ?? L'exemple de l'aide pour GetEnvironmentVariable n'a pas été efficace, pourtant j'avais regardé ;)

@Nombre,

Y'a deja plein de petits programmes pour faire apparaitre, sauter, remplacer le pass de windows. J'avoue ne pas m'y être interessé en PB et je ne saurai pas te dire comment faire.
Dernière modification par Ar-S le lun. 05/nov./2007 14:37, modifié 1 fois.
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci pour ton tuto
Répondre