[R] Petite question concernant l'UDF zip.au3

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Petite question concernant l'UDF zip.au3

#1

Message par franco »

Bonjour à toutes et à tous.

J'utilise l'UDF zip.au3 (disponible ici) pour sa fonction suivante : _Zip_UnzipAll()

Rien de bien difficile... Je l'utilise comme cela :

Code : Tout sélectionner

Global $CannedCenterDir = @AppDataDir & "\CannedCenter\"
Global $MyCanneds = $CannedCenterDir & "My canneds\"
DirRemove($CannedCenterDir, 1)
DirCreate($CannedCenterDir)
DirCreate($MyCanneds)

FileInstall("canneds.zip", $MyCanneds & "canneds.zip")
_Zip_UnzipAll($MyCanneds & "canneds.zip", $MyCanneds, 1)
C'est en début de script.

Voici la syntaxe de la fonction _Zip_UnzipAll()

Code : Tout sélectionner

_Zip_UnzipAll($hZipFile, $hDestPath, $flag = 1)
Si $flag est à 1, je n'ai pas, normalement, de boite de dialogue.
Or, j'en ai une.

Donc, j'ai été voir l'UDF zip.au3 de plus près.

Le code en entier
► Afficher le texteLe code en entier
Ce qui m'intéresse ici, comme vous l'avez constaté ( :mrgreen: ), c'est la fonction _Zip_UnzipAll(), donc voici le code :

Code : Tout sélectionner

Func _Zip_UnzipAll($hZipFile, $hDestPath, $flag = 1)
    Local $DLLChk = _Zip_DllChk()
    If $DLLChk <> 0 Then Return SetError($DLLChk, 0, 0);no dll
    If not _IsFullPath($hZipFile) then Return SetError(4,0) ;zip file isn't a full path
    If Not FileExists($hZipFile) Then Return SetError(2, 0, 0) ;no zip file
    If Not FileExists($hDestPath) Then DirCreate($hDestPath)
    Local $aArray[1]
    $oApp = ObjCreate("Shell.Application")
    $oApp.Namespace($hDestPath).CopyHere($oApp.Namespace($hZipFile).Items)
    For $item In $oApp.Namespace($hZipFile).Items
        _ArrayAdd($aArray, $item)
    Next
    While 1
        If $flag = 1 then _Hide()
        If FileExists($hDestPath & "\" & $aArray[UBound($aArray) - 1]) Then
            Return SetError(0, 0, 1)
            ExitLoop
        EndIf
        Sleep(500)
    WEnd
EndFunc   ;==>_Zip_UnzipAll
On a cela : If $flag = 1 then _Hide()
Donc c'est cette fonction qui gère, ou plutôt qui "cache" la fameuse boîte de dialogue, donc voici (encore) le code :

Code : Tout sélectionner

Func _Hide()
    If ControlGetHandle("[CLASS:#32770]", "", "[CLASS:SysAnimate32; INSTANCE:1]") <> "" And WinGetState("[CLASS:#32770]") <> @SW_HIDE   Then ;The Window Exists
        $hWnd = WinGetHandle("[CLASS:#32770]")
        WinSetState($hWnd, "", @SW_HIDE)
    EndIf
EndFunc
Dois-je en déduire que je dois utiliser l'outil AU3Info pour détecter la bonne classe ? Les bonnes informations ?


Merci de votre aide.
@+

Et si je ne croise personne, passez de bonnes fêtes !!! :)
Modifié en dernier par franco le dim. 22 déc. 2013 20:51, modifié 1 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#2

Message par franco »

Bonjour.

Je viens de tester, et je trouve la même classe que la classe provenant de ce code :

Code : Tout sélectionner

Func _Hide()
    If ControlGetHandle("[CLASS:#32770]", "", "[CLASS:SysAnimate32; INSTANCE:1]") <> "" And WinGetState("[CLASS:#32770]") <> @SW_HIDE   Then ;The Window Exists
        $hWnd = WinGetHandle("[CLASS:#32770]")
        WinSetState($hWnd, "", @SW_HIDE)
    EndIf
EndFunc
Donc, je vais retester, et modifier, si c'est différent, les autres informations.


++
L'entraide, c'est mon dada ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#3

Message par mikell »

Eventuellement tu peux essayer

Code : Tout sélectionner

Func _Hide()
    If ControlGetHandle("[CLASS:#32770]", "", "[CLASS:SysAnimate32; INSTANCE:1]") <> "" And _
        BitAND(WinGetState("[CLASS:#32770]"), 2) Then    ;The Window Exists
        $hWnd = WinGetHandle("[CLASS:#32770]")
        WinSetState($hWnd, "", @SW_HIDE)
    EndIf
EndFunc
" 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
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#4

Message par franco »

Resalut.

Je viens de constater que je n'étais pas le seul à se poser cette question : http://www.autoitscript.fr/forum/viewto ... =10361&f=3

Et comme l'autre personne, je suis en 64 bits.

Je vais tester la solution de mikell : http://www.autoitscript.fr/forum/viewto ... 552#p71552

Sinon, si cela ne fonctionne pas, j'utiliserais la proposition dite par mikell, concernant 7-zip.
Puisque j'ai déjà décompressé via 7zip en invite de commande, je vais surement adopter cette procédure.


Je vous tiens au courant.


EDIT : Merci mikell, je n'avais pas vu ta réponse (^^) On s'est croisé :)


++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#5

Message par franco »

Re ^^


Cela ne fonctionne pas...

Je vais faire avec 7-zip je pense :mrgreen:



Je reviendrais vous tenir au courant :)


EDIT : J'oublie les bonnes manière :oops: Merci de ton aide, Mikell



@+
L'entraide, c'est mon dada ;)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#6

Message par bloodwolff »

Utilise cette fonction
► Afficher le texte
Compte skype : bloodwolfff
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Petite question concernant l'UDF zip.au3

#7

Message par franco »

Salut :D

Merci Bloodwolff, cela fonctionne impeccable.

Je peux enfin terminer le script sur les canneds speech.


Sujet résolu :D


Bonnes fêtes à tous ! 8)
L'entraide, c'est mon dada ;)
Répondre