Base de registre -regarder si elle existe- [Résolu]

Signaler
Messages postés
45
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
19 mai 2008
-
Messages postés
45
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
19 mai 2008
-
Bonjour!

j'ai appris tout récament a jongler avec les bases de registres. j'aimerais que mon code enleve une base de registre que j'ai moi meme créer mais tout dabord que mon application regarde si la base de registre existe. J'ai le code pour créer et suprimer la base de registre. Je me demandais qu'elle serait le code pour regarder si la base de registre existe. j'ai ce code mais il ne marche pas.. (J'ai testé avec la base de registre avast! .)

 if System.IO.File.Exists(
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\avast!") =
True
Then
   label1.text = "yay"
end if

Voils si vous avez une idée répondez moi! =D

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Essaye avec ceci :

If My.Computer.Registry.GetValue(
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run","C++ simulation2",
Nothing)
Is Nothing Then

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Jongle avec ce que tu veux mais pas avec les termes techniques, ils ont un sens commun qu'il s'agit de conserver sinon il est impossible de se comprendre.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\avast!")
est une "valeur" d'une "clé", assurément pas une "base de registres".

ciao...
BruNews, MVP VC++
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Question termes techniques :

La base de registre est le coeur du système Windows, elle est l'ensemble de sauvegarde de la configuration de la totalité du système.
Elle ne peut ni etre créée ni etre supprimée, elle constitue la base du système d'exploitation au même titre que le kernel, et ce, depuis les toutes premières versions de Windows.

La base de registre est constituée de différentes Ruches (Hive en anglais), généralement au nombre de 5, c'est les fameuses HKey (Hive Key).

Chaque ruche étant constituées d'un certain nombre de clés, chacune des clés pouvant etre à son tour constituée d'un certain nombre de clés et/ou de valeurs, constituant ainsi une arborescence à l'image des dossiers et fichiers d'un disque dur.

En VB2005, tout ce qui concerne l'accès à la base de registre se trouve dans le NameSpace My.Computer.Registry

Quant à vérifier si une valeur existe, il suffit de la lire avec GetValue, si elle n'existe pas GetValue retournera Nothing
http://msdn2.microsoft.com/fr-fr/library/ky500c4y(VS.80).aspx

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
45
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
19 mai 2008

Salut!

Désoler pour les termes techniques et merci pour les explication maisb je suis confu.
Voila j'ai créer ce que je croit être une clé dans une base de registre (remarque c'est peut etre une valeur d'une clé regarder le code pour le savoir...) Voici le code qui crée ma "clé"

Private

Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

'bouton pour écrire la cléWshShell = CreateObject(

"Wscript.Shell")application =

"C:" &
"C++ simulation2" &
".exe"wshShell.RegWrite(

"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\C++ simulation2", application)

End
Sub

Bon.. Voila j'ai maintenant une clé qui appelle mon petit programe C++ simulation2.exe qui est dans C:\ lors du démarge de windows. Maintenant je veux savoir si cette clé existe en lancant une autre application. voila le code que j'ai :

Private

Sub Button3_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button3.Click

If
My.Computer.Registry.GetValue(
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\C++ simulation2",
"TestValue",
Nothing)
Is
Nothing
ThenMsgBox(

"Value does not exist.")

End
If

Bon maintenant a chaque fois que je click sur le bouton 3 sa m'envoi Value does not exist et pourtant je viens de créer ma nouvelle clé. Je me demande ques que j'ai fais d'incorect. merci pour les réponse =D 
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
WshShell = CreateObject("Wscript.Shell")
Machine script à bannir, emploie fonctions du framework ou API.

ciao...
BruNews, MVP VC++
Messages postés
45
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
19 mai 2008

Merci Casy tu m'as bien dépané.