Obtenir le nom de l'ordinateur en cours


Propriétés du code


Date de création : 29/06/2007 à 07:58:00
6 Commentaire(s)
  eldim

 

Présentation


Obtenir le nom de l'ordinateur en cours de deux façons différentes

 

Code


'Code de récupération du nom du PC
'On utilisera toujours la seconde méthode (par API)

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal _
    lpBuffer As String, nSize As Long) As Long

Public Function GetPCNameObject() As String
Dim WSHnet As Object
    Set WSHnet = CreateObject("wscript.network")
    GetPCNameObject = WSHnet.computername
    Set WSHnet = Nothing
End Function

Public Function GetPCNameAPI() As String
Dim Buffer As String
    Buffer = String$(32, vbNullChar)    '32 = MAX_SIZE +1
    Call GetComputerName(Buffer, 32)
    GetPCNameAPI = Left$(Buffer, InStr(Buffer, vbNullChar) - 1)
End Function


 

Historique


Voici l'historique des modifications de ce code :
Le 06/08/2007 par violent_ken : Optimisation du code

 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


De MadMatt le 29/06/2007 à 15:10


Voilà le genre de code que nous recherchons ;-)

Et par exemple ces fonctions peuvent etre optimisée. Par exemple la première fonction est très peu recommandée (tout ce qui est CreateObject, utilisation de WMI etc... est bien trop lent), on ne cherche qu'à utiliser des API. Donc la 2è fonction est bien meilleure.
Après tu peux encore l'optimiser en déclarant bien chaque variable de chaine de caractère en tant que String (et non pas en utilisant $). Donc pour l'en tete par exemple ça donnerait :
Public Function getPCAPI() As String

Inversement, la fonction String par exemple renvoie une variable de type Variant. Donc VB fait la conversion en String implicitement ce qui fait perdre du temps. Il faut donc utiliser la fonction String$ qui elle renvoie une variable de type String directement, donc pas de conversion. De meme pour Chr et Left

On vise aussi à mettre un maximum de commentaires pour rendre le projet facile à aborder, donc si tu as le temps n'hésite pas à en ajouter (bien qu'ici le code soit assez court, mais au moins pour décrire ce que fait la fonction).

Enfin c'est un bon début ;-)

 

De eldim le 29/06/2007 à 15:35


Ok merci
je ferais ça la prochaine fois
j'ai la même pour les users en cours si tu veux... et d'autres trucs comme ça...
(Mais je pars en congés donc je verrai plus tard si j'ai le temps de poster tout ça)
ps : j'ai repris ça sur un source vbExcel que j'avais fait et je peux te dire dessus les $ sont beaucoup plus rapide que les string... (sur un code de plusieurs millions de lignes)

 

De violent_ken le 06/08/2007 à 17:52


Yop, j'ai mis à jour en effectuant quelques optimisations !
@+

 

De MadMatt le 06/08/2007 à 22:20


Excellent !

 

De violent_ken le 06/09/2007 à 13:34


Salut, le code a été inclus dans la MAJ.
@+

 

De eldim le 06/09/2007 à 13:45


Salut !
merci d'avoir mi les deux ça fait plaisir :)
c'est pas tous les jours que j'ai un code dans un projet open source :)

 

Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.013 s
www.mnapoli.fr