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
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=C:\Program Files\AutoIt3\Icons\filetype-blank.ico
#AutoIt3Wrapper_Res_Comment=Ceci est un programme d'automatisation de mes sauvegardes
#AutoIt3Wrapper_Res_Description=Script de sauvegarde Personnel
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=copyright BlueKit
#AutoIt3Wrapper_Res_Language=1036
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#NoTrayIcon
#include <GuiConstantsEx.au3>
#include <7Zip.au3>
#include <WindowsConstants.au3>
; Définition des variables utilisées.
$sTitre = "Sauvegarde"
$sDirBackup = "F:\Sauvegarde\En_Cours"
$sDirZip = "F:\Sauvegarde\"
$sZipFile = @MDAY & @MON & @YEAR & "_" & @HOUR & @MIN & ".zip"
$sSauvegarde1 = @MyDocumentsDir
;----------------------------------
; Lancement du script de sauvegarde
;----------------------------------
$sMsg = "La fonction de ce script est la sauvegarde des données vers le disque externe actuellement connecté." & @CRLF & @CRLF
$sMsg &= "Cliquez 'OK' pour lancer la sauvegarde ou 'Annuler' pour quitter le script."
If MsgBox(65, $sTitre, $sMsg) = 2 Then Exit
;-----------------------------------
; Compression du répertoire existant
;-----------------------------------
;-- Vérification si un répertoire existe déjà
if FileExists($sDirBackup) Then
SplashOff()
$sMsg = "Un répertoire de sauvegarde exite déjà," & @CRLF & @CRLF
$sMsg &= "Voulez-vous le remplacer par une nouvelle sauvegarde ?"
If MsgBox(49, $sTitre, $sMsg) = 2 then
$sMsg = "Vous venez d'abandonner la sauvegarde" & @CRLF & @CRLF
$sMsg &= "Au revoir"
MsgBox(0, $sTitre, $sMsg)
Exit
EndIf
EndIf
;-- Insertion de la dll dans l'exe
FileInstall("7-zip32.dll", @ScriptDir & "\", 1)
;-- Affichage d'une msgbox pendant la compression
$sMsg = SplashTextOn($sTitre, "Archivage de l'ancienne sauvegarde en cours...", -1, 100, -1, -1, 32, "", 8)
;-- Création du répertoire de sauvegarde
DirCreate($sDirBackup)
;-- Changement du répertoire de travail afin de créer le Zip à l'adresse $sDirZip
FileChangeDir($sDirZip)
;-- Lancement de la compression
_7ZipAdd($sMsg, $sZipFile, $sDirBackup, 1)
;-- Si erreur pendant la compression, alors message d'erreur et fin du script
If @error Then
MsgBox(48, "Création Archive", "Erreur lors de la création de l'archive de secours")
FileDelete(@ScriptDir & "\7-zip32.dll")
Exit
EndIf
;-------------------------------------------------
; Suppresion des fichiers de l'ancienne sauvegarde
;-------------------------------------------------
;-- Affichage d'un message pendant la suppression avec une pause de 2 secondes
$sMsg = SplashTextOn($sTitre, "Suppression des fichiers de l'ancienne sauvegarde en cours...", -1, 100, -1, -1, 32, "", 8)
FileDelete($sDirBackup)
Sleep(2000)
;-----------------------------------
; Création de la nouvelle sauvegarde
;-----------------------------------
;-- Copie du dossier Mes documents
$sMsg = SplashTextOn($sTitre, "Création de la nouvelle sauvegarde en cours...", -1, 100, -1, -1, 32, "", 8)
FileCopy($sSauvegarde1, $sDirBackup, 8)
Sleep(2000)
;-- Arrêt des fenêtres en cours et message de fin
SplashOff()
$sMsg = "La sauvegarde est terminé."
MsgBox(64, $sTitre, $sMsg)
FileDelete(@ScriptDir & "\7-zip32.dll")
Exit
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 :
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 :
quand j'utilise FileInstall, si je met :
et que je modifie 7zip.ua3 par :
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
