[..] Comment intégrer des .REG dans une DLL et les appeler

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
LeeK
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 09 déc. 2013 20:07
Status : Hors ligne

[..] Comment intégrer des .REG dans une DLL et les appeler

#1

Message par LeeK »

Bonsoir,

Je débute depuis peu sur Autoit.

Voilà mon problème. J'ai scripté un programme en DOS. Je voudrai le retravailler avec Autoit.

Je souhaite intégrer des raccourcis ainsi que des fichiers de registre et des fichiers INI.
J'ai réussi à écrire dans la base de registre avec la commande ci-dessous.

Code : Tout sélectionner

[i]Run("cmd.exe /c reg import C:\Script\BDR.reg")[/i]
Après compilation, une fois le fichier supprimé ou déplacé, cela ne fonctionne plus.

J'ai donc voulu l'intégrer dans une DLL.

J'ai réussi à intégrer des fichiers REG en tant que RCData dans une DLL.
J'arrive à le lancer avec la ligne de commande ci-dessous

Code : Tout sélectionner

[i]Dllcall("TEST.dll", @ScriptFullPath, "BDR")
[/i]
Mais cette commande ne m'écrit rien dans la base de registre.

Je voudrai dans un 2e temps, extraire les fichiers INI de la DLL vers un répertoire spécifique.
Une petite aide?

En vous remerciant :D
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#2

Message par jguinch »

Bonsoir LeeK, bienvenue sur le forum.
Il existe des fonctions intégrées à AutoIt pour lire/écrire dans la base de registre, ainisi que pour les fichiers INI.
Voir dans l'aide les fonctions RegWrite et IniWrite.

Si ton fichier .reg contient beaucoup d'infos et que tu souhaites le laisser "en dehors" du script, tu peux l'embarquer dans l'exécutable compilé. Il suffira alors de le sortir de l'exécutable avant de les utiliser.

Petit ex :

Code : Tout sélectionner

FileInstall("BDR.reg", @TempDir & "\BDR.reg", 1)
Run('regedit /s "' & @TempDir & '\BDR.reg"', @SystemDir, @SW_HIDE)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#3

Message par mikell »

Bienvenue sur le forum

Tu devrais regarder dans le fichier d'aide d'Autoit la fonction FileInstall() et les fonctions sous Registry Management :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
LeeK
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 09 déc. 2013 20:07
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#4

Message par LeeK »

@jguinch

Merci pour ton script. Cela fonctionne, mais j'aimerai une possibilité où les fichiers REG et les fichiers INI soient "compilés" avec le fichier final. N'avoir qu'un seul fichier EXE.

En effet, j'ai 5 fichiers REG , dont 1 qui a plus de 3600 lignes.

@mikell

J'avais regardé du coté des fonctions sous Registry Management, mais avec le nombres de lignes que j'ai, cela serait trop long. De plus, si je veux mettre à jour les clés de registre, il est plus simple de faire un "export" de la base de registre, vers un .REG et de l'intégrer à autoit.

Concernant les fichiers INI, ce sont des fichiers propre à des logiciels. Du style si le fichier INI est en francais, alors le logiciel se lancera en francais, avec le bon path etc...

Avez vous d'autres suggestions?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#5

Message par Tlem »

LeeK a écrit :j'aimerai une possibilité où les fichiers REG et les fichiers INI soient "compilés" avec le fichier final. N'avoir qu'un seul fichier EXE.
FileInstall() fait parfaitement l'affaire. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#6

Message par mikell »

Absolument...

Maintenant on peut aussi bricoler :roll: pour intégrer à peu près ce qu'on veut comme texte dans le code
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#7

Message par Tlem »

Ne fonctionne pas une fois compilé. :P

On peux aussi prendre la truelle pour mettre le beurre sur la biscotte, mais je le répète : FileInstall() fait parfaitement l'affaire dans ce cas précis, sinon, il va falloir passer par des méthodes de compilation du texte des fichiers dans des variables pour les extraire afin de recréer les fichiers (cf mon exemple dans la section des UDFs), donc pas la peine de prendre la truelle. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#8

Message par jguinch »

C'est pas pour faire la malin là, mais dans le code que j'ai posté, j'ai justement utilisé FileInstall() :P
LeeK a écrit :mais j'aimerai une possibilité où les fichiers REG et les fichiers INI soient "compilés"
Oui, c'est justement ce qu'on te dit tous les 3 :la fonction FileInstall() fait ça : regarde la doc :roll:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#9

Message par jchd »

Je plussoie : la documentation est certifiée ne contenir ni explosif, ni sarin, ni anthrax. On peut donc la consulter sans précautions particulières.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comment intégrer des .REG dans une DLL et les appel

#10

Message par Tlem »

jguinch a écrit :C'est pas pour faire la malin là, mais dans le code que j'ai posté, j'ai justement utilisé FileInstall()
C'est bien pour cela que je confirme l'utilisation de cette fonction. J'aurais pu faire "+1" mais c'était moins porteur. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre