Base de registre -regarder si elle existe-

Résolu
ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008 - 7 oct. 2007 à 16:36
ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008 - 8 oct. 2007 à 15:28
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 oct. 2007 à 22:22
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
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 oct. 2007 à 17:50
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++
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 oct. 2007 à 18:27
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
0
ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008
7 oct. 2007 à 22:12
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 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 oct. 2007 à 22:23
WshShell = CreateObject("Wscript.Shell")
Machine script à bannir, emploie fonctions du framework ou API.

ciao...
BruNews, MVP VC++
0
ninja hacker Messages postés 45 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 19 mai 2008
8 oct. 2007 à 15:28
Merci Casy tu m'as bien dépané.
0
Rejoignez-nous