mat1554
Messages postés51Date d'inscriptionsamedi 23 avril 2005StatutMembreDernière intervention29 avril 2013
-
6 août 2006 à 01:28
mat1554
Messages postés51Date d'inscriptionsamedi 23 avril 2005StatutMembreDernière intervention29 avril 2013
-
6 août 2006 à 20:10
Bonjour à tous,
J`aimerai bien avoir la commande qu`il faut entre dans Visual Basic Expres 2005, pour pouvoir lire un clé de la base de régistre.
Pour le moments j`aurai besoin de lire la clé suivante
Dans :
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName
J'aimerai lire la chaine ComputerName
Ce que je veux faire, c`est que automatiquement mon programme rentre la variable "NameComp" exemple à la chaine de la base de registre, et ensuit je veux que le text qui affiche à l`écran soit cette valeur.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 6 août 2006 à 15:43
Essaie ceci :
<small>
Coloration syntaxique automatique </small>
' A placer dans un Module :
Public Const HKEY_LOCAL_MACHINE = &H80000002
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _
"RegOpenKeyExA" ByVal hKey As Long, _
ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, phkResult As Long) As Long
' Lire d'une entrée dans la clé spécifiéé
Public Function LectureEntréeClé(Raçine As Long, NomClé As String, Entrée As String) As String
Dim Clé As Long
Dim LeBuffer As String
Dim LaLongueur As Long
Dim reponse As Long
' Ouverture de la clé
Clé = OuvertureClé(Raçine, NomClé)
' Vidage des paramétres
LeBuffer = Space$(2550)
LaLongueur = Len (LeBuffer)
' Appel de l'API
reponse = RegQueryValueEx(Clé, Entrée, 0, 1, LeBuffer, LaLongueur)
' Fermeture de la clé
FermetureClé Clé
' Vérification
LeBuffer = Left$(LeBuffer, LaLongueur)
If Right$(LeBuffer, 1) = Chr$(0) Then
LeBuffer = Left$(LeBuffer, Len (LeBuffer) - 1)
End If
' Fin
LectureEntréeClé = Trim$(LeBuffer)
End Function
__________________________________________________
' Puis dans ton code, lorsque tu as besoins de récupérer cette valeur :
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 6 août 2006 à 17:41
OK,
Pour récupérer le nom de l'ordinateur pas la peine d'aller dans le registre. Tu trouves de nombreuse infos dans la classe Environment notamment Environment.MachineName qui te retourne le nom de ton ordinateur.
Ensuite pour écrire et lire dans le registre il y a dans l'espace de noms My des méthodes pour accéder à la base de registre
Ecrire une valeur de type REG_SZ (string)
My
.Computer.Registry.LocalMachine.OpenSubKey(ACTIVECOMPUTER_REGKEY, True
).SetValue(
"NameComp"
,
"blablabla"
, Microsoft.Win32.RegistryValueKind.String)
Lire une valeur
MessageBox.Show(
My.Computer.Registry.LocalMachine.OpenSubKey(ACTIVECOMPUTER_REGKEY,
False
).GetValue(
"NameComp"
,
"La valeur n'existe pas"
))
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 6 août 2006 à 06:57
Salut,
je fais pas de .net donc je ne connais pas le code mais voit certainement avec l'API suivante :
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 6 août 2006 à 10:26
Salut Willy,
ça gaz et toi !!
Là je suis au taf, 2 heures de sommeil, j'en peux plus... lol
T'es bien matinal pour un dimanche ! ;)
Mat, Willy à raison, il y a beaucoup de sources traitant le Registre.
Je te conseille celle de MisterRom, les functions d'APIs se trouvent dans un Module, il a créé des fonctions perso que tu peux utiliser très facilement dans ton projet.
mat1554
Messages postés51Date d'inscriptionsamedi 23 avril 2005StatutMembreDernière intervention29 avril 2013 6 août 2006 à 15:24
Oui je sais qu`il y en as bcp, mais sur aucun j`ai compris , car sa traite pas de la valeur que j`ai besoin, si je pourrai avoir le code avec la valeur dont j`ai besoin après je reussirai.
Car ds les autres topic, je comprend jamais ou c`est je suis supposer entre ma valeur,etc
mat1554
Messages postés51Date d'inscriptionsamedi 23 avril 2005StatutMembreDernière intervention29 avril 2013 6 août 2006 à 19:23
merci a tous mais Dolphin Boy je comprend pas trop ta commandes.Je vais regarde sa plus en ampleur, mais sa risque d`etre compliquer,car ce que je veux me faire pour mon prog, c`est un System Information.
Il va avoir ds des lbl le nom de ordinateur
processeur , marque,adresse ip
carte video , etc
Si tous est possible , en passant si quelqu`un a une idée sur comment reussi a aller cherche ses information faite e le moi savoir.