Page 1 sur 1

[R] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 21:03
par BlueKit
Salut,

Je débute, mais entre ce forum et le forum .com j'avance un peu.
Je tente pour mon 1er script d'effectuer une sauvegarde sur
un disque externe.
J'essaie d'utiliser le script 7Zip.au3, mais je bloc pas mal
dans la fonction fileinstall pour incorporer à l'exe "7-zip32.dll"
apparament, il s'incorpore bien mais il ne ressort pas pendant l'exécution
de l'exe.
J'ai bien lu différent post mais pourtant ca plante.

Voici la totalité de mon code.

Merci d'avance de votre aide.
► Afficher le texteCode
Et le message d'alerte qui s'affiche dans la fenetre basse lors du f7 :

Code : Tout sélectionner

->Warning: This is an Unicode compiled script and will not run on Win9x/ME.
Et si je met "#AutoIt3Wrapper_UseAnsi=y" alors :

Code : Tout sélectionner

! AutoIt3 ANSI version not present, defaulting back to standard UNICODE version.
->Warning: This is an Unicode compiled script and will not run on Win9x/ME.

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 21:17
par Tlem
Avec cette ligne :

Code : Tout sélectionner

FileInstall("7-zip32.dll", @ScriptDir & "\", 1)
Puisque vous ne précisez aucun chemin, vous devez avoir 7-zip32.dll impérativement dans le répertoire de votre script avant la compilation et toujours d'après cette ligne, la DLL sera extraite dans @ScriptDir & "\", soit le répertoire de votre script.
Maintenant, faite trés attention à l'UDF 7zip.au3 car il à peut être besoin de cette DLL dans un autre répertoire que celui du script.

Si vous utilisez l'UDF 7-Zip présent ici, alors la DLL doit impérativement être présente dans le répertoire de l'UDF et donc du script.

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 21:33
par BlueKit
J'ai dans le meme dossier :
Sauvegarde.au3 (mon script)
7Zip.au3 (celui dont Tlem fait référence car il marche nickel)
7-zip32.dll

Lorsque je l'execute avec f5 ca marche nickel.

Après f7, l'exe marche toujours nickel.

Mais dès que je change de place l'exécutable alors il ne fonctionne plus
car il ne trouve plus 7-zip32.dll
Il faut que je la colle manuellement pour que ca marche alors
que je pensais que FileInstall m'évitait un copier coller de cette dernière.

Est-ce que les messages d'erreur apparaissant dans la fenetre basse sont important
et peut etre à l'origine de l'erreur ?

(pour un 1er script, c'est potable ? meme si ca marche pas...)

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 22:26
par Tlem
Si vous êtes sous Vista, vous devriez faire en sorte que la DLL soit extraite/utilisée dans le répertoire temporaire de l'utilisateur car je doute que Vista vous laisse extraire un fichier n'importe ou sans autorisation spéciale.

Attention, si vous utilisez l'UDF 7zip.au3 que j'ai donné en exemple sur le forum, celui-ci gère automatiquement la DLL (voir les premières lignes du code).
La DLL est copiée dans @TempDir automatiquement, vous n'avez donc pas besoin en théorie de vous en occupé, placez la dans le répertoire de l'UDF et le reste suivra.

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 23:02
par BlueKit
Je suis sous XP
J'ai bien regarder 7Zip.ua3 mais tout ce que je vois c'est :

Code : Tout sélectionner

Global $hDLL_7ZIP = DllOpen(@ScriptDir & "\7-zip32.dll")
quand j'utilise FileInstall, si je met :

Code : Tout sélectionner

FileInstall("7-zip32.dll", @TempDir & "\7-zip32.dll", 1)
et que je modifie 7zip.ua3 par :

Code : Tout sélectionner

Global $hDLL_7ZIP = DllOpen(@TempDir & "\7-zip32.dll")
Ca marche toujours pas

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : dim. 18 janv. 2009 23:47
par Tlem
En fait, il y à deux chose en début de l'UDF :

Code : Tout sélectionner

If FileExists(@ScriptDir & "\7-zip32.dll") Then
    Global $hDLL_7ZIP = DllOpen(@ScriptDir & "\7-zip32.dll")
Else
    FileInstall("7-zip32.dll", @TempDir & "\7-zip32.dll", 1)
    Global $hDLL_7ZIP = DllOpen(@TempDir & "\7-zip32.dll")
EndIf
La première ligne test si la DLL est présente dans le répertoire du script et si oui, ouvre la DLL à partir de là.
Ensuite (Else) si la DLL n'est pas dans le répertoire, on décompresse la DLL de l'exécutable compilé dans le répertoire temporaire et on l'ouvre de là.

Voilà, je ne peut vous dire mieux. Ceci fonctionne parfaitement sur plusieurs ordinateurs, et j'utilise cette méthode depuis quelques temps sans aucun problème. Vérifiez que vous avez la dernière version de AutoIt et que vous avez les droits administrateur.

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 20:43
par BlueKit
Tlem,

Les lignes de codes que tu viens de me donner sont super
car elles n'apparaissent pas dans le code initial de 7Zip.au3

Maintenant, ca marche nickel.... COOOLLLLLL

Merci pour ton temps passé à répondre.

Il est vraiment super ce forum...

------------------------------------------------------------------
La Connaissance s'accroît quand on la partage! (Source : Bellamy JC)

Re: [..] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 21:54
par Tlem
BlueKit a écrit :Les lignes de codes que tu viens de me donner sont super
car elles n'apparaissent pas dans le code initial de 7Zip.au3
C'est clair.
Je croyais que vous aviez récupéré le code de 7zip.au3 de notre forum (http://www.autoitscript.fr/forum/viewto ... =21&t=1943)
Je l'ai adapté pour le rendre plus autonome. ;)

Re: [R] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 22:54
par BlueKit
c'est bien celui là que j'ai comme script mais
il ne contient pas vos modifications... domage...

Car elles sont indispensables...

Re: [R] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 23:12
par Tlem
Haaa ...
Je vais regardez ça dés que possible alors.

Re: [R] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 23:22
par Tlem
Effectivement, j'ai mis l'UDF original.
Je rajoute un message pour signaler ceci.

Merci à vous.

Re: [R] Problème avec FileInstall et 7-zip32.DLL

Posté : lun. 19 janv. 2009 23:34
par BlueKit
Bonne continuation...

Merci encore pour votre aide

@ Bientôt pour une prochaine aide :D