Il me semble que la méthode Save de Win32::TieRegistry ne permet
d'obtenir un export que dans un format binaire.
J'aimerais obtenir un fichier .reg classique, comme celui obtenu avec
la fonction exporter de regedit pour windows 2000. Je cherche
également à effectuer l'opération inverse (chargement depuis un
fichier reg de type texte).
C'est un problème assez basique et pourtant je ne trouve pas de
solution évidente.
Il serait envisageable de parcourir la structure et de faire un print,
et inversement ( lire dans un .reg pour charger un fichier dans la
registry). Cela pose à priori quelques problèmes ( par exemple dans
mon fichier .reg il y a un type Hex(7) qui doit être écrit
REG_MULTI_SZ dans le registre je n'ai pas trop envie de jouer avec
ce genre de choses ).
J'ai également regardé Win32::TieRegistry::Dump , mais il semble
provoquer une erreur dans win32API::Registry .
Est ce qu'il y a une solution ? Ou bien il ne restera que l'appel
système :(
J'aimerais obtenir un fichier .reg classique, comme celui obtenu avec la fonction exporter de regedit pour windows 2000. Je cherche également à effectuer l'opération inverse (chargement depuis un fichier reg de type texte).
À ma connaissance, le seul module qui fasse cela est Win32::Registry2 qui est une version patchée de Win32::Registry. Voir la page de Jenda :
http://jenda.krynicky.cz/perl/Registry.pm.html
(méthodes Export et Import). Le patch est disponible sur :
http://jenda.krynicky.cz/#Win32::Registry2
J'ai mis cette version patchée dans mon dépot :
http://www.bribes.org/perl/ppmdir.html
À installer avec ppm comme d'habitude.
HTH
-- J-L.M.
Dans l'article <36bba7a.0411020755.1ae0fbdf@posting.google.com>, dcd@noos.fr a dit...
Il me semble que la méthode Save de Win32::TieRegistry ne permet
d'obtenir un export que dans un format binaire.
Oui et il y a plusieurs formats incompatibles entre eux :
J'aimerais obtenir un fichier .reg classique, comme celui obtenu avec
la fonction exporter de regedit pour windows 2000. Je cherche
également à effectuer l'opération inverse (chargement depuis un
fichier reg de type texte).
À ma connaissance, le seul module qui fasse cela est Win32::Registry2 qui
est une version patchée de Win32::Registry. Voir la page de Jenda :
http://jenda.krynicky.cz/perl/Registry.pm.html
(méthodes Export et Import).
Le patch est disponible sur :
J'aimerais obtenir un fichier .reg classique, comme celui obtenu avec la fonction exporter de regedit pour windows 2000. Je cherche également à effectuer l'opération inverse (chargement depuis un fichier reg de type texte).
À ma connaissance, le seul module qui fasse cela est Win32::Registry2 qui est une version patchée de Win32::Registry. Voir la page de Jenda :
http://jenda.krynicky.cz/perl/Registry.pm.html
(méthodes Export et Import). Le patch est disponible sur :
http://jenda.krynicky.cz/#Win32::Registry2
J'ai mis cette version patchée dans mon dépot :
http://www.bribes.org/perl/ppmdir.html
À installer avec ppm comme d'habitude.
HTH
-- J-L.M.
dcd
À ma connaissance, le seul module qui fasse cela est Win32::Registry2 qui est une version patchée de Win32::Registry. Voir la page de Jenda :
http://jenda.krynicky.cz/perl/Registry.pm.html
(méthodes Export et Import).
Merci de votre réponse. Malheuresement je ne peux pas mettre à jour les modules sur les machines ou je vais executer mon script.
Je vais donc passer par l'appel systeme suivant :
my $ruche=""HKEY_LOCAL_MACHINESYSTEMCurrentControlSetMaRuche""; my $exported = "c:/temp/ruchebkp.reg" ; my $comm = "c:/sys/windows/regedit.exe" ; my @argz = ($comm, "/E", $exported, $ruche ) ;
system(@argz) == 0 or die "system call to regedit failed: $?" ;
Dav' .
À ma connaissance, le seul module qui fasse cela est Win32::Registry2 qui
est une version patchée de Win32::Registry. Voir la page de Jenda :
http://jenda.krynicky.cz/perl/Registry.pm.html
(méthodes Export et Import).
Merci de votre réponse. Malheuresement je ne peux pas mettre à jour
les modules sur les machines ou je vais executer mon script.
Je vais donc passer par l'appel systeme suivant :
my $ruche=""HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\MaRuche"";
my $exported = "c:/temp/ruchebkp.reg" ;
my $comm = "c:/sys/windows/regedit.exe" ;
my @argz = ($comm, "/E", $exported, $ruche ) ;
system(@argz) == 0
or die "system call to regedit failed: $?" ;