Page 2 sur 4

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : sam. 13 oct. 2012 20:30
par Tlem
Comme je l'ai dit sur le forum Anglais, après une semaine (19 téléchargements :shock: ) il est frustrant de n'avoir aucun retour sur cet UDF qui apporte quand même le support 64 Bit et un correctif sur les nouvelles archive ZIP !!!

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 10:20
par babiol
Bonjour,

Et tout d'abord un grand merci pour ton travail, impressionnant !
Je suis vraiment débutant sur autoit (1 semaine à peine) mais je trouve ce produit génial, j'ai créé un script pour déployer nos applications, on à des .zip (releases) dans un dossier mis à jour par svn et je les extrait avec 7Zip.au3, ça marche bien à partir du script mais après avoir compilé et lancé l'executable je tombe sur le message d'erreur.
J'ai essayé de mettre les dll à la fois dans le même dossier et dans le dossier Temp mais ça ne change rien. Une idée ?

Image

Voici mon script:
► Afficher le texte

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 14:15
par babiol
Pour contourner mon problème et étant donné que 7zip est déjà installé sur tous les postes j'ai fini par remplacer

Code : Tout sélectionner

$retResult = _7ZIPExtractEx(0, $sArchive, $sOutDir, 0, 1)
par

Code : Tout sélectionner

RunWait('"C:\Program Files\7-Zip\7zg.exe" x "'  & $sArchive & '" -y -o"' & $sOutDir & '"')
Bon c'est un contournement mais au moins je peux faire mon exe.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 16:13
par Tlem
C'est un contournement qui ne fonctionnera que sur les OS 32 bit !!!
J'aimerais bien avoir le message d'erreur SVP.

Edit : Pour le message d'erreur, vous avez oublié de lire ceci :
** De part l'ajout des fonctions _7ZipStartup et _7ZipShutdown, vous devrez probablement
mettre à jour les anciens codes qui utilisent les fonctions répétitives.
:mrgreen:

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 19:49
par babiol
Tlem a écrit :C'est un contournement qui ne fonctionnera que sur les OS 32 bit !!!
J'aimerais bien avoir le message d'erreur SVP.
Oui effectivement, merci de le souligner, je devrais faire des tests au préalable et utiliser %ProgramFiles% ou %programfiles(x86)%
Tlem a écrit :Edit : Pour le message d'erreur, vous avez oublié de lire ceci :
** De part l'ajout des fonctions _7ZipStartup et _7ZipShutdown, vous devrez probablement
mettre à jour les anciens codes qui utilisent les fonctions répétitives.
:mrgreen:
J'ai un peu du mal à retrouver le bout de code qui utilise une fonction répétitive, pouvez-vous m'éclairer ?
Merci pour votre réponse.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 21:20
par Tlem
:shock:

_7ZipStartup et _7ZipShutdown permettent de charger ou décharger la dll. Donc, soit vous avez une seule commande à lancer et dans ce cas vous commencez par _7ZipStartup, puis votre commande de l'UDF 7Zip et vous finissez par _7ZipShutdown (sauf pour certaines commandes prévues pour fonctionner de manière autonome car elles chargent la dll si elle n'est pas déjà ouverte), soit votre script doit lancer plusieurs commandes de l'UDF 7zip et dans ce cas vous commencez votre script par _7ZipStartup puis votre code qui utilise les commandes 7zip de l'UDF et quand vous quittez votre script, utilisez _7ZipShutdown pour fermer la dll.

En espérant que cela soit plus clair.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 17 oct. 2012 21:55
par babiol
A oui merci, c'est vraiment plus clair, c'est bien pensé ce chargement optimal de la dll, je testerai demain, merci encore

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : jeu. 18 oct. 2012 14:02
par babiol
Bonjour,

J'ai trouvé d'où venait l'erreur une fois le fichier compilé dans l'utilisation de _7ZipStartup(), dans mon cas j'ai mon .exe avec les dll 7zip dans le même dossier, et la fonction FileInstall me déplace ces dll dans le Temp, je les ai donc mis en lecture seule.
ça ne fonctionne toujours pas, en effet la copie des dll vers Temp via FileInstall ne prend pas en compte une latence système, la dll est bien copiée mais le Return SetError(3, 0, 0) est envoyé trop vite ou bien c'est autre chose. Peut-être le Or _
En modifiant légèrement le code de 7Zip.au3 dans le Else (donc quand on compile) ça fonctionne.
► Afficher le texte

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : jeu. 18 oct. 2012 21:16
par Tlem
Correction prise en compte (de manière plus simple) et mise à jour du premier message. De plus cette suggestion évitera de décompresser inutilement la dll de l'autre architecture (j'aurais dut y penser avant ... :oops: ).

Merci babiol.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : ven. 19 oct. 2012 14:41
par babiol
Je vous en prie, par contre j'ai laissé une petite erreur qui ne se voit pas en compilation mais qui se voit quand on Run le au3 (F5), il faut apparement toujours faire des retours à la ligne après les Then et Else, sinon on a des message d'erreur dans SciTE, j'ai corrigé dans le code ci-dessus.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : ven. 19 oct. 2012 16:30
par Tlem
Je n'ai pas utilisé votre correction. J'ai fait bien plus simple ... :mrgreen:

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 16:15
par davzell
quelqu'un sait ce qui pourrait poser problème.

j'ai téléchargé le package fournit a la page 1, décompressé le fichier sur mon pc
ajouté le chemin vers le dossier décompressé dans SciTE config (dans la partie User Includes)

et quand je test le script d'exemple ca ne marche pas

Code : Tout sélectionner

#include <7Zip.au3>
; Compression d'un répertoire avec ses sous répertoires.
$retResult = _7ZipAdd(0, "MonArchive.zip", "C:\test")
If @error Then
    MsgBox(64, "_7ZipAdd", "Erreur lors de la création de l'archive")
Else
    MsgBox(64, "_7ZipAdd", "L'archive à été crée avec succés" & @LF & $retResult)
EndIf
dans Scite Si je commence a taper _7Zip... il ne me propose aucune des fonction inclus dans l'udf (du coup j'ai l'impression que le 7zip.au3 n'est pas prise en compte dans sciTE)

j'ai aussi essayé de copié le fichier 7zip.au3 (et les dll) dans le répertoire include mais pas mieux

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 16:29
par timmalos
Premièrement il ne faut pas confondre l'autocompletion dans Scite et l'ajout d'un include.

Ce qu'il faut faire c'est soit copier l'include et les dlls dans le dossier de votre script et l'inclure avec #include "7Zip.au3" soit dans le dossier autoit/includes et l'inclure avec #include <7Zip.au3>

Ensuite si vous avez une erreur il faut nous la donner pour qu'on puisse vous aider :)

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 16:43
par davzell
timmalos a écrit :Premièrement il ne faut pas confondre l'autocompletion dans Scite et l'ajout d'un include.

Ce qu'il faut faire c'est soit copier l'include et les dlls dans le dossier de votre script et l'inclure avec #include "7Zip.au3" soit dans le dossier autoit/includes et l'inclure avec #include <7Zip.au3>

Ensuite si vous avez une erreur il faut nous la donner pour qu'on puisse vous aider :)

ah mince je pensais que l'autocompletion pouvait être un moyen de vérifier si les udf était bien prise en compte.

du coup j'ai testé les deux méthodes (udf dans includes et a coté de mon script) mais c'est la même chose j'ai une erreur "Erreur lors de la création de l'archive" dans le script donné juste avant

est ce que j'ai moyen de voir si les udf sont bien prise en compte dans sciTE ?

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 17:21
par timmalos
Si vous n'avez pas d'erreur de compilation ce qui semble être le cas, l'UDF est bien ajouté.

Remplacez

Code : Tout sélectionner

MsgBox(64, "_7ZipAdd", "Erreur lors de la création de l'archive")
Par

Code : Tout sélectionner

MsgBox(64, "_7ZipAdd", "Erreur lors de la création de l'archive"& @error)
Et donnez nous le numero de l'erreur

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 17:27
par davzell
j'ai: Erreur lors de la création de l'archive2

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 17:38
par timmalos
Il n'arrive pas à ouvrir la DLL.
Celle-ci doit etre dans le même repertoire que votre script.
Verifiez que c'est bien le cas.
Essayez egalement les exemples qui sont dans le zip pour tester.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 17:55
par davzell
j'ai testé les exemples fournis avec et idem j'ai une erreur "enable to start dll"

pourtant elles sont bien au même endroit que mon script.

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : mer. 30 oct. 2013 18:36
par Tlem
Fonctionne parfaitement sur XP et W7 x64 avec AutoIt v3.3.8.0.
Fonction testée : _7ZipAdd_Example.au3

Re: [UDF] 7-Zip avec Dll x32 et x64

Posté : jeu. 31 oct. 2013 09:41
par davzell
j'ai testé chez moi les mêmes manip et ca marche...

doit y avoir quelque chose qui bloque sur le poste du taf mais quoi ?

ya pas de prérequis ou autre a avoir sur le poste pour que ca fonctionne ?