[UDF] 7-Zip avec Dll x32 et x64

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#21

Message 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 !!!
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é".
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#22

Message 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
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#23

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#24

Message 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:
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é".
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#25

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#26

Message 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.
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é".
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#27

Message 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
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#28

Message 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
Modifié en dernier par babiol le ven. 19 oct. 2012 15:38, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#29

Message 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.
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é".
babiol
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 17 oct. 2012 10:46
Status : Hors ligne

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

#30

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#31

Message par Tlem »

Je n'ai pas utilisé votre correction. J'ai fait bien plus simple ... :mrgreen:
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é".
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#32

Message 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
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#33

Message 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 :)
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#34

Message 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 ?
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#35

Message 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
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#36

Message par davzell »

j'ai: Erreur lors de la création de l'archive2
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

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

#37

Message 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.
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#38

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#39

Message par Tlem »

Fonctionne parfaitement sur XP et W7 x64 avec AutoIt v3.3.8.0.
Fonction testée : _7ZipAdd_Example.au3
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é".
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

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

#40

Message 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 ?
Répondre