LPF - Utiliser le Portabilizer pour les clés de registre

Vous avez rencontré un problème dans l'utilisation de la LiberKey ?
17 messages • Page 1 sur 21, 2

LPF - Utiliser le Portabilizer pour les clés de registre

Messagede Atlankey » 16 Octobre 2012, 17:38

Salut, je suis en train de tester le portabilizer (c'est de la bombe !!!! simple et centraliser :woohoo: )
par contre j'ai un probleme, je n'arrive pas a changer une vaulleur dans le registre ( le mode Admin est activer)

Code: Tout sélectionner
        <Registry>
           <RegReplace>
                        <RegVar>
                                <RegValue>HKLM\SOFTWARE\Collectorz.com\Movie\MCE</RegValue>
                      <StringID>Folder Path</StringID>
                      <Replace compare="txt">%LBK_APP_PATH%\App\AppData_ORI\Local\Collectorz.com\Movie Collector\MCE\</Replace>
                        </RegVar>
                </RegReplace>
        </Registry>



j'ai essayer de rajouter "regfile" pour un .reg par default mais idem.
origine:
Code: Tout sélectionner
                <RegSettings regfile="Data\MovieCollector.reg" level="required">
                </RegSettings>

ajout:
Code: Tout sélectionner
                <RegReplace regfile="Data\DEF_MovieCollector.reg" level="required">
                </RegReplace>

Quelqu'un aurait une solution?

Edit de Dji: je me suis permis de modifier le titre du post afin de le rendre plus clair par rapport au contenu ;-)
Edit Atlankey: pas de souci, c'est vrai que je suis tellement plonger dans la regRuche que j'avoue metre focaliser juste sur le minimun de mise en page ;)
Dernière édition par Atlankey le 17 Octobre 2012, 17:27, édité 1 fois.
J'ai beau lire "Liberkey", mais je dit toujours "Libertikey"!!! ;)
Avatar de l’utilisateur
Atlankey
Fresh Boarder
Fresh Boarder
 
Messages: 22
Inscription: 10 Novembre 2008, 16:10

Re: Help. impossible de remplacer une valeur dans le registr

Messagede Dji » 17 Octobre 2012, 14:38

Il te faut commencer par paramétrer les clés qui seront sauvegardées à la fin de ton programme et restaurées avant l'exécution de ton programme dans le .reg comme suit:

Code: Tout sélectionner
<Registry>
  <RegSettings regfile="Data/settings/un fichier.reg" level="optional">
    <Value>HKCU\Software\7-zip\Options\WorkDirPath</Value>
  </RegSettings>
</Registry>


Ensuite, tu va paramétrer les variables de ce .reg qui seront remplacées/restaurées par %LBK_ROOT%
Code: Tout sélectionner
<RegReplace>
   <RegVar>
      <RegValue>HKCU\Software\7-zip\Options\WorkDirPath</RegValue>
      <StringID>_LBK_APP_PATH_</StringID>
      <Replace compare="txt">%LBK_APP_PATH%</Replace>
   </RegVar>
</RegReplace>
"Si boire des coups, aller au concert ou au match, ça devient un combat
Alors tremblez, terroristes !
Parce qu'on est surentraînés !"
@glecalot
Avatar de l’utilisateur
Dji
Administrator
Administrator
 
Messages: 3724
Inscription: 28 Novembre 2007, 09:57
Localisation: Quelque part entre les ombres

Re: Help. impossible de remplacer une valeur dans le registr

Messagede Atlankey » 17 Octobre 2012, 15:02

oui c'est ce que je fait depuis ce matin mais ca ne fonctionne pas.

<RegVar> ne change pas le chemin donc du coup j'ai essayer d'adapter cela avec un 2eme .reg qui contien les chemins path par default.

Code: Tout sélectionner

<Registry>
        <RegSettings regfile="Data\MovieCollector_ConfigUser.reg" level="required">
                <Section>HKCU\Software\Collectorz.com\Movie</Section>
                <Section>HKLM\SOFTWARE\Classes\.mvc</Section>
                <Section>HKLM\SOFTWARE\Classes\Movie Collector</Section>
                <Section>HKLM\SOFTWARE\Collectorz.com\Movie</Section>
        </RegSettings>
        <RegSettings regfile="Data\MovieCollector_ConfigDefaultPath.reg" level="required">
                <Value>HKCU\Software\Collectorz.com\Movie\Databases</Value>
                <Value>HKLM\SOFTWARE\Collectorz.com\Movie\MCE</Value>
        </RegSettings>

        <RegReplace>
                <RegVar>
                        <RegValue>HKCU\Software\Collectorz.com\Movie\Databases</RegValue>
                   <StringID>CurrentDatabase</StringID>
                   <Replace compare="txt">%LBK_APP_PATH%\Documents\Movie Collector\Test.mvc</Replace>
                </RegVar>
                <RegVar>
                        <RegValue>HKLM\SOFTWARE\Collectorz.com\Movie\MCE</RegValue>
                   <StringID>XML Path</StringID>
                   <Replace compare="txt">%LBK_APP_PATH%\App\AppData\Local\Collectorz.com\Movie Collector\MCE\movies.mcexml</Replace>
                </RegVar>
        </RegReplace>
</Registry>



Le .reg n°2 ( MovieCollector_ConofigDefaultPath.reg) se lance bien en second, et met donc a jour le path du .reg1 (MovieCollector_ConfigUser.reg) lancer en 1er.
mais lors de la fermeture su soft, le reg2 et vide, car la modif <RegVar> ne change pas le chemin et donc RegSettings enregistre un reg. MovieCollector_ConofigDefaultPath.reg vide (meme si le reg et en lecture seule)


Cepandant, le probleme reste le meme, que je passe par 1 RegSettings & <RegVar>, ou bien, par 2 RegSettings & 2fichier Reg.
J'ai beau lire "Liberkey", mais je dit toujours "Libertikey"!!! ;)
Avatar de l’utilisateur
Atlankey
Fresh Boarder
Fresh Boarder
 
Messages: 22
Inscription: 10 Novembre 2008, 16:10

Re: Help. impossible de remplacer une valeur dans le registr

Messagede Dji » 17 Octobre 2012, 15:16

Qu'y a t'il exactement à l'emplacement HKCU\Software\Collectorz.com\Movie ? (fais un export partiel et copie colle le contenu ici, pas de fichier joint, stp)

Sinon , il vaut mieux préférer l'utilisation d'un et un seul .reg mais une fois que ton appli est fermée, tu édite le .reg qu'il aura sauvé et tu y mets (si on se base sur mon exemple) _LBK_APP_PATH_ dans les valeurs de clés souhaitées, puis tu relance le .lpf via le portabilizer.
"Si boire des coups, aller au concert ou au match, ça devient un combat
Alors tremblez, terroristes !
Parce qu'on est surentraînés !"
@glecalot
Avatar de l’utilisateur
Dji
Administrator
Administrator
 
Messages: 3724
Inscription: 28 Novembre 2007, 09:57
Localisation: Quelque part entre les ombres

Re: Help. impossible de remplacer une valeur dans le registr

Messagede Atlankey » 17 Octobre 2012, 15:35

justement c'est que j'ai tester avec le Reg.2. a la fermeture je copie le reg 2, quand le soft demarre, le reg2 et pris en compte et les chemins mis a jour. mais lors de la fermeture du soft. le reg2 et vierge.


Le fichier Reg.2 et celui qui contient les path car je n'arrive pas a modifié avec <RegVar> les valeurs dans l'utilisation d'un et un seul .reg

Reg.2 (copié manuelement dans Data avant l'ouverture du soft)
Code: Tout sélectionner
REGEDIT4

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Databases]
"CurrentDatabase"="..\\..\\-- DataBase --\\MovieCollector - Films\\db-films.mvc"

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Folders]
"Data"="..\\..\\-- DataBase --\\MovieCollector - Films\\"
"App"=""
"Backup"="..\\..\\-- DataBase --\\MovieCollector - Films\\Backup\\"
"UserTemplates"="..\\..\\-- DataBase --\\MovieCollector - Films\\Templates\\"
"UserFiles"="..\\..\\-- DataBase --\\MovieCollector - Films\\"
"MediaFiles"="..\\..\\-- DataBase --\\MovieCollector - Films\\"

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Settings]
"ImageBaseFolder"="..\\..\\-- DataBase --\\MovieCollector - Films\\Images\\"
"ThumbnailBaseFolder"="..\\..\\-- DataBase --\\MovieCollector - Films\\Thumbnails\\"
"LookupItemImagesFolder"="..\\..\\-- DataBase --\\MovieCollector - Films\\Images\\Listitemimages\\"

[HKEY_LOCAL_MACHINE\Software\Collectorz.com\Movie\MCE]
"XML Path"="..\\DefaultData\\localappdata\\Collectorz.com\\Movie Collector\\MCE\\movies.mcexml"


Reg.2 a la fermeture du soft
Code: Tout sélectionner
REGEDIT4

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Databases]

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Folders]

[HKEY_CURRENT_USER\Software\Collectorz.com\Movie\Settings]

[HKEY_LOCAL_MACHINE\Software\Collectorz.com\Movie\MCE]




D'ou mon probleme. dans le cas l'utilisation d'un et un seul .reg, je n'arrive pas a Paraméter <RegVar>.

Par exemple pour
Code: Tout sélectionner
[HKEY_LOCAL_MACHINE\Software\Collectorz.com\Movie\MCE]
"XML Path"="..\\DefaultData\\localappdata\\Collectorz.com\\Movie Collector\\MCE\\movies.mcexml"


j'ai fait dans le cas l'utilisation d'un et un seul .reg:
Code: Tout sélectionner
                       
<RegVar>
        <RegValue>HKLM\SOFTWARE\Collectorz.com\Movie\MCE</RegValue>
        <StringID>XML Path</StringID>
        <Replace compare="txt">%LBK_APP_PATH%\App\AppData\Local\Collectorz.com\Movie Collector\MCE\movies.mcexml</Replace>
</RegVar>


mais apparaement ce n'est pas bon?
J'ai beau lire "Liberkey", mais je dit toujours "Libertikey"!!! ;)
Avatar de l’utilisateur
Atlankey
Fresh Boarder
Fresh Boarder
 
Messages: 22
Inscription: 10 Novembre 2008, 16:10

Re: Help. impossible de remplacer une valeur dans le registr

Messagede Dji » 17 Octobre 2012, 16:22

C'est parce que tu ne renseigne pas les nom des clés à sauvegarder ! :)

Essaye ceci:
Code: Tout sélectionner
<Registry>
  <RegSettings regfile="Data/settings/un fichier.reg" level="optional">
    <Value>HKCU\Software\Collectorz.com\Movie\Databases\CurrentDatabase</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\Data</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\App</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\Backup</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\UserTemplates</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\UserFiles</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Folders\MediaFiles</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Settings\ImageBaseFolder</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Settings\ThumbnailBaseFolder</Value>
    <Value>HKCU\Software\Collectorz.com\Movie\Settings\LookupItemImagesFolder</Value>
    <Value>HKLM\Software\Collectorz.com\Movie\MCE\XML Path</Value>
    <SectionKill force="no">HKCU\Software\Collectorz.com\Movie</SectionKill>
    <SectionKill force="no">HKLM\Software\Collectorz.com\Movie</SectionKill>
  </RegSettings>
</Registry>


Ne mets rien dans <RegReplace> si les chemins en relatifs fonctionnent, sinon mets les chemins complets en dur et stipule ceci :
Code: Tout sélectionner
<RegReplace>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Databases\CurrentDatabase</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\Data</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\App</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\Backup</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\UserTemplates</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\UserFiles</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Folders\MediaFiles</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Settings\ImageBaseFolder</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Settings\ThumbnailBaseFolder</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Settings\LookupItemImagesFolder</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
  <RegVar>
    <RegValue>HKLM\Software\Collectorz.com\Movie\MCE\XML Path</RegValue>
    <StringID>_LBK_APP_PATH_</StringID>
    <Replace compare="txt">%LBK_APP_PATH%</Replace>
  </RegVar>
</RegReplace>
"Si boire des coups, aller au concert ou au match, ça devient un combat
Alors tremblez, terroristes !
Parce qu'on est surentraînés !"
@glecalot
Avatar de l’utilisateur
Dji
Administrator
Administrator
 
Messages: 3724
Inscription: 28 Novembre 2007, 09:57
Localisation: Quelque part entre les ombres

Re: LPF - Utiliser le Portabilizer pour les clés de registre

Messagede Atlankey » 17 Octobre 2012, 17:16

Excellent, maintenant que j'ai compris comment paramettrer le <regvalue> grace a ton exemple, j'ai pu cernet le probleme.
En fait cela vien de "<Replace compare="txt">", en fait lors du premier demarage ( ou dans le cas d'une valeur vide) comme le <StringID></StringID> doit etre identique a la valeur du registre du coup elle ne fait que comprarer et remplacer. et non plas creer ou ecraser.
(donc dansle cas d'une valeur VIDE ou NON ORIGINEL) seul la valeur Original et conserver.

voila ce qu'il me faudrait donc : -->sans la ligne StringID></StringID> avec,
a la place de "<Replace compare="txt">" :
- il faut un truc du genre "<Replace create/compare="txt">" ou bien "<Replace forcereplace="txt">"

Code: Tout sélectionner
 
<RegVar>
    <RegValue>HKCU\Software\Collectorz.com\Movie\Databases\CurrentDatabase</RegValue>
    <Replace create/compare="txt">%LBK_APP_PATH%</Replace>
</RegVar>


seulement le wiki ne detail pas cela.tu connait la bonne commande?
J'ai beau lire "Liberkey", mais je dit toujours "Libertikey"!!! ;)
Avatar de l’utilisateur
Atlankey
Fresh Boarder
Fresh Boarder
 
Messages: 22
Inscription: 10 Novembre 2008, 16:10

Re: LPF - Utiliser le Portabilizer pour les clés de registre

Messagede Dji » 18 Octobre 2012, 08:29

As tu seulement essayé ma config ? ;-)

Au démarrage, le portabilizer enregistre les noms des clés qu'il doit restaurer (les <Value> dans <RegSettings>), ensuite il lance l'application (pour le moment, ne parlons pas du .reg, si mauvaises valeurs il y a dedans, ce n'est pas grave)
A la clôture de l'application, il regarde dans ces mêmes clés, s'il y a quelque part la valeur %LBK_APP_PATH% et la remplace dans le ficher .reg spécifié par _LBK_APP_PATH_ (pas toute la valeur, seulement le chemin correspondant à %LBK_APP_PATH%)
Au lancement suivant de l'appli, il ouvrira à nouveau le .reg et remplacera pour chaque clé (<RegValue> dans <RegVar>) la valeur _LBK_APP_PATH_ par %LBK_APP_PATH% (pas toute la valeur, seulement _LBK_APP_PATH_)

P.S : Je le répète: ne mets rien dans <RegReplace> si les chemins en relatifs fonctionnent !
"Si boire des coups, aller au concert ou au match, ça devient un combat
Alors tremblez, terroristes !
Parce qu'on est surentraînés !"
@glecalot
Avatar de l’utilisateur
Dji
Administrator
Administrator
 
Messages: 3724
Inscription: 28 Novembre 2007, 09:57
Localisation: Quelque part entre les ombres

Re: LPF - Utiliser le Portabilizer pour les clés de registre

Messagede Atlankey » 18 Octobre 2012, 10:50

oui c'est ta config je j'ai mis et qui fonctionne. et qui comme je te les dit ma permit de voir d'ou venait le problème.

Au démarrage, le portabilizer enregistre les noms des clés qu'il doit restaurer (les <Value> dans <RegSettings>), ensuite il lance l'application (pour le moment, ne parlons pas du .reg, si mauvaises valeurs il y a dedans, ce n'est pas grave)


Ca oui, ca marche pas de souci,

A la clôture de l'application, il regarde dans ces mêmes clés, s'il y a quelque part la valeur %LBK_APP_PATH% et la remplace dans le ficher .reg spécifié par _LBK_APP_PATH_ (pas toute la valeur, seulement le chemin correspondant à %LBK_APP_PATH%)


le probleme et là.
je veux pas qu'il mette a jour la clé par une comparaison de chemin. mais simplement qu'il ecrive la valeur si elle n'y est pas ou bien la remplacer de force.


car sinon, je suis dependant du reg. et en plus donc fausse toute la config du logiciel car je _LBK_APP_PATH_ et detecter du coup que au 3 démarrage du soft car il compare et met a jour le reg a la fin du 2eme lancement....
Au lancement suivant de l'appli, il ouvrira à nouveau le .reg et remplacera pour chaque clé (<RegValue> dans <RegVar>) la valeur _LBK_APP_PATH_ par %LBK_APP_PATH% (pas toute la valeur, seulement _LBK_APP_PATH_)


donc il me faut une commande <remplace compare=txt> mais pour creer sur une valeur vide ou remplacer de force.
J'ai beau lire "Liberkey", mais je dit toujours "Libertikey"!!! ;)
Avatar de l’utilisateur
Atlankey
Fresh Boarder
Fresh Boarder
 
Messages: 22
Inscription: 10 Novembre 2008, 16:10

Re: LPF - Utiliser le Portabilizer pour les clés de registre

Messagede Dji » 18 Octobre 2012, 15:27

Atlankey a écrit:car sinon, je suis dependant du reg.

Je ne vois pas où cela pose un problème, tu embarque le .reg avec le .lpf et ça roule (je fais ça pour portabiliser John's Background Switcher)

Atlankey a écrit:et en plus donc fausse toute la config du logiciel car je _LBK_APP_PATH_ et detecter du coup que au 3 démarrage du soft car il compare et met a jour le reg a la fin du 2eme lancement....

Au premier lancement, les valeurs sont fausses parce qu'on l'a voulu sciemment justement pour qu'il y écrive ce dont il a besoin pour après pouvoir vérifier le .reg à la main.

Sinon au second lancement et les suivants, tout roule normalement. Non ?
"Si boire des coups, aller au concert ou au match, ça devient un combat
Alors tremblez, terroristes !
Parce qu'on est surentraînés !"
@glecalot
Avatar de l’utilisateur
Dji
Administrator
Administrator
 
Messages: 3724
Inscription: 28 Novembre 2007, 09:57
Localisation: Quelque part entre les ombres

Suivante

17 messages • Page 1 sur 21, 2

Retourner vers Support

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 963 invités