Bonjour a tous,
Voila le scénario:
Je fournis le support pour un logiciel qui entre autres stocke certaines données dans le registre.
Pour chaque profil utilisateur lié a ce logiciel, existe un sous-dossier sous la forme
HKCU\Software\nomdusoft\profils\codeprofil-1
HKCU\Software\nomdusoft\profils\codeprofil-2
etc
Le nom de chaque profil est la seule variable que l'utilisateur connait et il se trouve a l’intérieur de chaque sous-dossier "codeprofil" stocké dans une clé dont le nom est connu.
Le but est de demander a l'utilisateur, pour chaque nom de profil, si ce profil est concerné par le problème rencontré, et le cas échéant en fonction de sa réponse, supprimer la sous-clé afin de résoudre le problème.
La difficulté vient du fait que je ne sais comment interroger le registre pour renvoyer la liste des sous-dossiers "codeprofil-n". J'ai bien pensé a _Filelisttoarray dans un premier temps, mais le triple problème est:
1- ceci donnera naissance a un tableau de valeurs que je ne sais quantifier, puisque je ne sais combien de "codeprofil" il existe
2- sauf erreur de ma part ce n'est pas exploitable dans le registre
3- même si j'arrive a extraire cette liste, je dois reconvertir chacun de ces arrays en string afin de pouvoir les insérer dans l'instruction finale qui consiste a supprimer la clé responsable du problème:
RegDelete($destinationdansleregistre, "clebidule")
Voila j’espère être suffisamment clair, merci pour vos réponses.
[R] Exploiter un array dans un string
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Exploiter un array dans un string
Modifié en dernier par jerebou le mar. 03 juil. 2012 15:15, modifié 1 fois.
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [...] Exploiter un array dans un string
bonjour
la commande que tu cherches est : RegEnumKey
la commande que tu cherches est : RegEnumKey
Re: [...] Exploiter un array dans un string
Oui, mais...
Si je définis $chemin="HKCU\Software\nomdusoft\profils"
et demande a en tester 3 par exemple, je teste mon bout de code:
For $i=1 to 3
$codeprofil = RegEnumKey($chemin, $i)
Je n'ai rien du tout, je viens de tester avec une MsgBox.
Si je définis $chemin="HKCU\Software\nomdusoft\profils"
et demande a en tester 3 par exemple, je teste mon bout de code:
For $i=1 to 3
$codeprofil = RegEnumKey($chemin, $i)
Je n'ai rien du tout, je viens de tester avec une MsgBox.
- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [...] Exploiter un array dans un string
Bonsoir,
et quel est l'erreur retournée par cette méthode ??
à savoir ces possibilité ci;
et quel est l'erreur retournée par cette méthode ??
à savoir ces possibilité ci;
tester avec ceci par exemple ;Failure: Returns an empty string and sets @error to:
1 if unable to open requested key
2 if unable to open requested main key
3 if unable to remote connect to the registry
-1 if unable to retrieve requested subkey (key instance out of range)
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Re: [R] Exploiter un array dans un string
Problème résolu, en fait vu d'ici ça parait idiot, mais SciTE ne veut pas utiliser une variable dans RegEnumKey pour indiquer le chemin a vérifier dans la base de registre si cette variable définit le début du chemin du genre HKEY_CURRENT_USER etc par contre je peux compléter mon chemin par un string rappelé dans l'expression, curieux quand même.
En fait il semble que pour initialiser ma fonction RegEnumKey je sois obligé de lui donner le chemin en dur, ou au moins le début.
J'ai fini par trouver la solution a mon script, je posterai le bon bout de code dans la journée.
Merci pour toutes les réponses.
EDIT: pas besoin de tout le bout de code, en fait les fonctions du registre ne reconnaissent le chemin que si son embranchement principal (HKEY_CURRENT_USER par exemple) a deja été utilisé au moins une fois en dur en invoquant une de ces fonctions. Ensuite, l'utilisateur peut librement rappeler l'instruction en question pour toute autre ligne de code en y mêlant diverses variables selon le besoin.
Vraiment curieux
En fait il semble que pour initialiser ma fonction RegEnumKey je sois obligé de lui donner le chemin en dur, ou au moins le début.
J'ai fini par trouver la solution a mon script, je posterai le bon bout de code dans la journée.
Merci pour toutes les réponses.
EDIT: pas besoin de tout le bout de code, en fait les fonctions du registre ne reconnaissent le chemin que si son embranchement principal (HKEY_CURRENT_USER par exemple) a deja été utilisé au moins une fois en dur en invoquant une de ces fonctions. Ensuite, l'utilisateur peut librement rappeler l'instruction en question pour toute autre ligne de code en y mêlant diverses variables selon le besoin.
Vraiment curieux
- TopXm
- Niveau 6

- Messages : 260
- Enregistré le : mer. 25 mai 2011 16:37
- Localisation : Usa
- Status : Hors ligne
Re: [R] Exploiter un array dans un string
Hello 
J'utilise très régulièrement le registre (et je ne dois pas être le seul) et je ne vais pas dans ton sens
(ou alors j'ai pas capté ce que tu as dis)
Ceci par exemple fonctionne sans problème
J'utilise très régulièrement le registre (et je ne dois pas être le seul) et je ne vais pas dans ton sens
(ou alors j'ai pas capté ce que tu as dis)
Ceci par exemple fonctionne sans problème
Code : Tout sélectionner
Local $KeyTest = 'HKCU\Software\Microsoft\Windows'
Local $I = 0, $Res
While 1
$I += 1
$Res = RegEnumKey($KeyTest, $I)
If @error Then ExitLoop
ConsoleWrite('Clé lue : ' & $Res & @CRLF)
WEndRe: [R] Exploiter un array dans un string
Je précise donc, en bon débutant que je suis, que je n'avais pas défini ma variable comme étant d'un type en particulier, Local ou autre.
Une simple définition du chemin pour ma variable selon qu'il s'agit d'un OS 64 bits ou non, sans rien devant le $.
Une simple définition du chemin pour ma variable selon qu'il s'agit d'un OS 64 bits ou non, sans rien devant le $.

