Accueil > Forum > > > > écrire dans le base de registre type REG_MULTI_SZ
écrire dans le base de registre type REG_MULTI_SZ
jeudi 1 juillet 2004 à 15:26:26 |
écrire dans le base de registre type REG_MULTI_SZ

vanes83
|
bonjour, j'aimerais écrire dans la base de registre mais le pb c'est que le type de ma clé est REG_MULTI_SZ j'utilise: Set WshShell = CreateObject("Wscript.Shell") WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\ISNT5\WhiteBlackLists\Global\l_editBL_1", ligne mais ma clé est changé en REG_SZ est il ne reste plus que la valeur que je voulais insérer. Comment faire pour ajouter une valeur dans une clé de type REG_MULTI_SZ merci
|
|
jeudi 1 juillet 2004 à 18:20:25 |
Re : écrire dans le base de registre type REG_MULTI_SZ

Houzefa
|
lol jte retrouve sur ce forum après celui de PHPCS ! donc pour stocker une valeur en REG_MULTI_SZ faut remplacer la simple chaine de caractères que t'utilisais par un tableau comprenant des chaines ; ce tableau doit etre terminé par 2 caractères de code ASCII 0. Houzéf@ - www.123toto.com
|
|
vendredi 2 juillet 2004 à 08:39:54 |
Re : écrire dans le base de registre type REG_MULTI_SZ

vanes83
|
Ben oui je suis là aussi!!!
Je ne comprend pas bien ce que tu veux dire , j'ai mis la valeur que je voulais insérer dans un tableau mais j'ai une erreur!
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\ISNT5\WhiteBlackLists\Global\l_editBL_1", ligne(0)
Comment je dois faire pour insérer ma valeur dans la clé REG_MULTI_SZ !!
Merci
|
|
vendredi 2 juillet 2004 à 13:35:49 |
Re : écrire dans le base de registre type REG_MULTI_SZ

Houzefa
|
ah oui... mais là c'est pas la bonne méthode... pour stocker une valeur en REG_MULTI_SZ, faut passer par une API de Windows ; et là tu peux utiliser un tableau. voilà un exemple : Private Const REG_MULTI_SZ = 7 Private Const HKEY_LOCAL_MACHINE = &H80000002 Private Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore Private Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted Private Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted Private Const STANDARD_RIGHTS_ALL = &H1F0000 Private Const SYNCHRONIZE = &H100000 Private Const READ_CONTROL = &H20000 Private Const STANDARD_RIGHTS_READ = (READ_CONTROL) Private Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Private Const KEY_CREATE_LINK = &H20 Private Const KEY_CREATE_SUB_KEY = &H4 Private Const KEY_ENUMERATE_SUB_KEYS = &H8 Private Const KEY_NOTIFY = &H10 Private Const KEY_QUERY_VALUE = &H1 Private Const KEY_SET_VALUE = &H2 Private Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Private Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Private Const KEY_EXECUTE = (KEY_READ) Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
'Dans ton Sub :
RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\TrendMicro\ISNT5\WhiteBlackLists\Global\l_editBL_1", 0, HKEY_ALL_ACCESS, Cle
RegSetValueEx Cle, "Valeur", 0, REG_MULTI_SZ, Tableau, Len(Tableau)
RegCloseKey Cle |
voilà pour le code de base ; ce qui est + compliqué est d'obtenir "Tableau", qu'il faut insérer. en fait faut parcourir le tableau et à la fin de chaque ligne du tableau faut rajouter "\0" ; de plus, à la fin du tableau, faut encore rajouter "\0" (ce qui fait qu'il yaura bien 2 "\0" à la fin du tableau au total). Houzéf@ - www.123toto.com
|
|
vendredi 2 juillet 2004 à 14:39:49 |
Re : écrire dans le base de registre type REG_MULTI_SZ

vanes83
|
J'ai essayé ça:
Private Const HKEY_LOCAL_MACHINE = &H80000002 Const webdir = "F:\IMSS\SiteWeb\"
Const REG_MULTI_SZ = &H7
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Sub Main() Dim ligne If Dir(webdir & "valreg.txt") <> "" Then Open webdir & "valreg.txt" For Input As #1 Line Input #1, ligne Close #1 ligne = ligne & "\0" & "\0" RegOpenKeyEx HKEY_LOCAL_MACHINE, "SOFTWARE\essai", 0, HKEY_ALL_ACCESS, Cle
RegSetValueEx Cle, "val", 0, REG_MULTI_SZ, ligne, Len(ligne)
RegCloseKey Cle End If End Sub Ma clé est:"HKEY_LOCAL_MACHINE\SOFTWARE\essai" et "val" et son nom ben oui je voulais pas foutre en l'aire ma vrai clé!! Mais on peut pas faire Len d'un tableau? Tu es sur qu'il faut utiliser un tableau? J'ai essayé d'ajouter à ma chaine ligne les caractères \0 mais ça ne fait rien du tout! Et sinon est ce que toute ces constantes sont obligatoires?
|
|
vendredi 2 juillet 2004 à 15:06:59 |
Re : écrire dans le base de registre type REG_MULTI_SZ

Houzefa
|
pour ma part dans un code je mets les constantes comme ca au début et ensuite je les vire toutes (genre je remplace REG_MULTI_SZ par 7) mais là j'ai tout laissé pour être + explicite. normalement faut utiliser un tableau, tu devrais refaire comme t'avais fais avant avec le ligne(0). pour le Len() c'est pas grave tu fais le Len() de la 1ère ligne du tableau et tu ajoutes 2 vu que ya les 2 "\0" en +. en clair c'est Len(ligne(0)) + 2 sinon jsuis désolé pour mes réponses pas très précises à plusieurs reprises mais là non plus j'ai jamais essayé... Houzéf@ - www.123toto.com
|
|
vendredi 2 juillet 2004 à 15:09:22 |
Re : écrire dans le base de registre type REG_MULTI_SZ

Houzefa
|
ah oui par contre c'est RegSetValueEx Cle, "Val", 0, REG_MULTI_SZ, ligne, Len(ligne(0))+2 et pas RegSetValueEx Cle, "Valeur", 0, REG_MULTI_SZ, ligne(0), Len(ligne(0))+2 c'est justement pour ca que ya un "As Any" dans la déf de la fonction, c'est pour pouvoir lui envoyer tout ce qu'on veut ! Houzéf@ - www.123toto.com
|
|
vendredi 2 juillet 2004 à 16:02:00 |
Re : écrire dans le base de registre type REG_MULTI_SZ

vanes83
|
Maintenant g ça : Sub Main() Dim cle Dim ligne(1) If Dir(webdir & "valreg.txt") <> "" Then Open webdir & "valreg.txt" For Input As #1 Line Input #1, ligne(0) Close #1 ligne(0) = ligne(0) & Chr$(0) & Chr$(0) RegOpenKeyEx HKEY_LOCAL_MACHINE, "SOFTWARE\essai", 0, HKEY_ALL_ACCESS, cle
RegSetValueEx cle, "val", 0, REG_MULTI_SZ, ligne, Len(ligne(0)) + 2
RegCloseKey cle End If End Sub
et il me met une erreur de compil type imcompatible au niveau de ligne dans RegSetValueEx cle, "val", 0, REG_MULTI_SZ, ligne, Len(ligne(0)) + 2
|
|
vendredi 2 juillet 2004 à 18:00:09 |
Re : écrire dans le base de registre type REG_MULTI_SZ

Houzefa
|
enfin !!! je suis à peu près sur de pas me tromper cette fois ! alors d'abord faut que jtexplik quelques trucs : - le caractère "\0" c'est le meme que Chr$(0) - une REG_MULTI_SZ c pas exactement un tableau, excuse. en fait tu vas comprendre par un exemple : la chaine "Bonjour", en REG_MULTI_SZ, serait : 'B' & Chr$(0) & 'o' & Chr$(0) & 'n' & Chr$(0) & 'j' & Chr$(0) & 'o' & Chr$(0) & 'u' & Chr$(0) & 'r' & Chr$(0) & Chr$(0) en fait faut mettre un "\0" après chaque caractère, et en mettre un à la fin (donc yen a 2 au total à la fin). donc d'abord la ligne qui commence par RegSetValueEx serait : | RegSetValueEx cle, "val", 0, REG_MULTI_SZ, chaine_sz, Len(chaine_sz) |
mais avant faut générer "chaine_sz" selon le principe que jviens de te dire. on va dire que la chaine de départ est "ligne" : For id_for = 1 To Len(ligne) chaine_sz = chaine_sz & Mid$(ligne, id_for, 1) & Chr$(0) Next chaine_sz = chaine_sz & Chr$(0) |
voilà c'est pas très dur a comprendre en fait... et sory pour toutes les con****es que jtai di avant... Houzéf@ - www.123toto.com
|
|
dimanche 4 juillet 2004 à 12:17:55 |
Re : écrire dans le base de registre type REG_MULTI_SZ

vanes83
|
J'ai fait ce que tu m'as dit et je comprends pas ça ne marche pas il ne se passe rien dans le registre! Qd on ouvre la clé ,est ce qu'on peut vérifier si elle a bien été ouverte?Peut être que ça vient de là enfin je ne sait pas! J'ai bien vérifié aussi que ma ligne n'est pas vide.
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Const REG_MULTI_SZ = 7 Private Const HKEY_LOCAL_MACHINE = &H80000002 Const webdir = "d:\"
Sub Main() Dim cle Dim ligne If Dir(webdir & "valreg.txt") <> "" Then Open webdir & "valreg.txt" For Input As #1 Line Input #1, ligne Close #1
For id_for = 1 To Len(ligne) chaine_sz = chaine_sz & Mid(ligne, id_for, 1) & Chr(0) Next chaine_sz = chaine_sz & Chr(0)
RegOpenKeyEx HKEY_LOCAL_MACHINE, "SOFTWARE\essai", 0, HKEY_ALL_ACCESS, cle RegSetValueEx cle, "val", 0, REG_MULTI_SZ, chaine_sz, Len(chaine_sz) RegCloseKey cle
End If End Sub
Tu peut essayer de tester le code ya juste un fichier texte et une clé à créer dans le registre.Car là je désespère!
|
|
Cette discussion est classée dans : écrire, type, multi, reg, sz
Répondre à ce message
Sujets en rapport avec ce message
Écriture clé REG_MULTI_SZ ? [ par Nighty ]
Bonjour,je cherche à savoir comment écrire dans les registres une clé dont la valeur est de type REG_MULTI_SZ.
registrer -REG_MULTI_SZ [ par Charles Racaud ]
Bonjour,Je fais un prog ou j'aurai besoin de sauver le contenu d'une listBox dans le registreJ'ai pensé a l'enregistrer en REG_MULTI_SZJ'utilise le co
Lecture clé Reg_Multi_SZ [ par murphy01 ]
Bonjour à tous,Voici mon problème, je cherche comment faire pour afficher le contenu d'une valeur reg_multi_sz de la registry dans une textbox ?Il s'a
Ecrire dans la base de registre type REG_MULTI_SZ [ par parker13 ]
Bonjour,Je viens de trouver comment LIRE dans la base de registre une valeur de type REG_MULTI_SZ.Set WSHShell = CreateObject("WScript.Shell") sRegP
Renseignement base de registre [ par fransoze ]
Bonjour,Je souhaiterai savoir si il y a une grande importance de definir le type (reg_dword, reg_sz, ...) d'une donnée.Comment peut on recuperer le ty
VB6 Base de Registre Hexadecimal [ par madustbin ]
Bonjour. Lorsque j'utilise l'instruction :Shell.RegWriteVB6 m'affiche une info Bulle contenant :RegWrite(Name As String, Value, [Type]) Je souhaitera
Base de registre [ par Crash_overide12 ]
Bonjour,Dans le cadre du développement d'une application afin de changer l'ip de différentes cartes reseau, je suis ammener à inscrire des information
auto type multi textbox [ par frazzled ]
bonjour je suis debutan avec vb2008et je cherche a essayer de creer un spammer avec plusieur text boxje m'explique je souhaite pouvoire envoyer une t
Help... Base de registre [ par rgilles ]
Bonjour, J'ai un problème je n'arrive pas à écrire une clé dans la base de registre en VB6 et Vista. Bien sûr ceci n'est pas pour un virus mais pour
Diff entre REG_SZ et REG_DWORD ? [ par KaViDee ]
Salut à tous,voila, je développe actuellement un soft qui utilise la base de registre mais j'ai merais savoir quelle est la différence entre une valeu
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|