Page 1 sur 1
[..] Planifier un dl et automatiser sa décompression
Posté : mer. 22 oct. 2008 20:29
par obiyoann
Bonjour je suis nouveau sur ce forum et je suis débutant sur le logiciel AutoIt. J’aimerai savoir comment faire un script qui permet le téléchargement d’un dossier à une date précise pour ensuite qu’il ce décompresse automatiquement dans un dossier choisi.
Re: [..]Planifier un dl et automatiser sa décompression
Posté : mer. 22 oct. 2008 21:11
par timmalos
Concernant votre demande, Je ne peux pas faire votre script en entier, mais la solution se trouve:
_DateDiff() et _Now() pour comparer les dates afin de savoir si le moment est venu de faire le telechargement
Ce qui suit s'appelle une boucle infinie, elle vous permettra , une fois que vous aurez lancé votre programme, de ne jamais quitter le programme.
While 1
Sleep(100)
wEnd
_Inetget() vous permettra de telecharger votre fichier sur Internet
Il existe des UDF pour dezipper mais je n'ai plus le lien sur moi
Pour toutes les fonctions que je vous ai mis, une fois dans l'editeur Scite, il faut appuyer sur F1 pour acceder a la documentation. Je te conseille egalement de lire tous les tutoriels pour debutant presents sur ce forum.
Re: [..] Planifier un dl et automatiser sa décompression
Posté : mer. 22 oct. 2008 23:12
par jbnh
j'ai peur pour la décompression mais essaye quand même...
le code:
► Afficher le texte
Code : Tout sélectionner
#include <array.au3>
#include <Zip32.au3>
$i = 1
$date = "22:41|22/10" ; respecter la forme : heure:min|jour/mois
$url = "http://hardwarez.xooit.net/test.rar"
$hDestPath = 'C:\Documents and Settings\Propriétaire\Bureau\test';chemin complet
If $i = 1 Then
while 1
If $date = @HOUR&':'&@MIN&'|'&@MDAY&'/'&@MON Then
$i = 2
exitloop
Endif
wend
Endif
If $i = 2 Then
InetGet($url, 'archive.zip', 1,0)
_UnZIP_Unzip("archive.zip", $hDestPath)
Endif
;==========================# ZIP FUNCTIONS #======================================
Func _UnZIP_PrintFunc($sName, $sPos)
ConsoleWrite("---> _UnZIP_PrintFunc: " & $sName & @LF)
EndFunc
Func UnZIP_ReplaceFunc($sReplace)
If MsgBox(4 + 32, "Overwrite", "File " & $sReplace & " is exists." & @LF & "Do you want to overwrite all file?") = 6 Then
Return $IDM_REPLACE_ALL
Else
Return $IDM_REPLACE_NONE
EndIf
EndFunc
Func _UnZIP_PasswordFunc($sPWD, $sX, $sS2, $sName)
ConsoleWrite("!> UnZIP_PasswordFunc: " & $sPWD & @LF)
Local $iPass = InputBox("Password require", "Enter the password for decrypt", "", "", 300, 120)
If $iPass = "" Then Return 1
Local $PassBuff = DllStructCreate("char[256]", $sPWD)
DllStructSetData($PassBuff, 1, $iPass)
EndFunc
Func _UnZIP_SendAppMsgFunc($sUcsize, $sCsize, $sCfactor, $sMo, $Dy, $sYr, $sHh, $sMm, $sC, $sFname, $sMeth, $sCRC, $fCrypt)
;ConsoleWrite("!> _UnZIP_SendAppMsgFunc: " & $sUcsize & @LF)
EndFunc
Func _UnZIP_ServiceFunc($sName, $sSize)
;Return 1 for abort the unzip!
GUICtrlSetData($edit, $sName & @CRLF, 1)
ConsoleWrite("!> Size: " & $sSize & @LF & _
"!> FileName" & $sName & @LF)
EndFunc
Re: [..] Planifier un dl et automatiser sa décompression
Posté : jeu. 23 oct. 2008 12:05
par Ghost911
j'ai plus simple

pour décompresser et sans .dll :
► Afficher le texte
Code : Tout sélectionner
#include <array.au3>
_Zip_UnzipAll (@ScriptDir&"\tonfichierzip.zip",@ScriptDir&"\tondossierdedecompression",0)
Func _Zip_UnzipAll($hZipFile, $hDestPath, $flag = 4)
Local $DLLChk = _Zip_DllChk()
If $DLLChk <> 0 Then Return SetError($DLLChk, 0, 0)
If Not FileExists($hZipFile) Then Return SetError(2, 0, 0)
If Not FileExists($hDestPath) Then DirCreate($hDestPath)
Local $aArray[1]
$oApp = ObjCreate("Shell.Application")
$oApp.Namespace($hDestPath).CopyHere($oApp.Namespace($hZipFile).Items, $flag)
For $item In $oApp.Namespace($hZipFile).Items
_ArrayAdd($aArray, $item)
Next
While 1
Sleep(500)
If FileExists($hDestPath & "\" & $aArray[UBound($aArray) - 1]) Then Return SetError(0, 0, 1)
ExitLoop
WEnd
EndFunc
Func _Zip_DllChk()
If Not FileExists(@SystemDir & "\zipfldr.dll") Then Return 2
If Not RegRead("HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}", "") Then Return 3
Return 0
EndFunc
Re: [..] Planifier un dl et automatiser sa décompression
Posté : jeu. 23 oct. 2008 15:26
par jbnh
J'avais déja essayer celui ci mais perso ca marche pas chez moi, étrange....
Re: [..] Planifier un dl et automatiser sa décompression
Posté : jeu. 23 oct. 2008 16:03
par Ghost911

bizarre chez moi sa marche très bien !
Re: [..] Planifier un dl et automatiser sa décompression
Posté : sam. 25 oct. 2008 00:07
par obiyoann
Un grand merci à tous le monde je vais tester tous sa

Re: [..] Planifier un dl et automatiser sa décompression
Posté : sam. 25 oct. 2008 12:42
par ani
Le problème avec cette manip^c'est que t'a deux copie du dossier décompressé

mais l'idée est là
lister le contenu sans la décompresser ?
@ghost911, dans la récuperation des item avec _arrayadd il t'afficher quoi pour un arraydisplay ?
@jbnh, çà ne marche pas, ne doit pas exister dans le vocabulaire ^^'
Alors l'exemple que tu fournis => ZIP mais le fichier a chercher est de compression RAR, peut etre que c'est là le soucis

Re: [..] Planifier un dl et automatiser sa décompression
Posté : lun. 27 oct. 2008 09:45
par Ghost911

donc si j'ai bien compris il veut utiliser une compression .rar ? (après si il ve utiliser lister un fichier zip il faut qu'il rajoute sa )
► Afficher le texte
Func _Zip_List($hZipFile)
local $aArray[1]
Local $DLLChk = _Zip_DllChk()
If $DLLChk <> 0 Then Return SetError($DLLChk, 0, 0) ;no dll
If Not FileExists($hZipFile) Then Return SetError(1, 0, 0) ;no zip file
$oApp = ObjCreate("Shell.Application")
$hList = $oApp.Namespace($hZipFile).Items
For $item in $hList
_ArrayAdd($aArray,$item.name)
Next
$aArray[0] = UBound($aArray) - 1
Return $aArray
EndFunc
Re: [..] Planifier un dl et automatiser sa décompression
Posté : lun. 27 oct. 2008 17:33
par ani
ok ghost911, pour le listage, mais le soucis, c'est que si le zip contiend un dossier il retourne que le dossier et pas son contenu :§
Exemple
Code : Tout sélectionner
Test.zip
--dossier test
---dossier 1
-----fichier ini/bat
---dossier 2
-----fichier exe
--dossier test 2
---dossier 3
-----Fichier Texte
---dossier 4
-----vide
et en visionnant le code, je remarque qu'il non pas inclu la recherche recursive,,,,, rhoooooo
Sinon çà fonctionne bien quand les fichier se trouve dans le zip sans dossier
code
Code : Tout sélectionner
#include <array.au3>
$zip = "F:\Test.zip"
$list = _Zip_List($Zip)
ConsoleWrite("============== Contenu du ZIP ============" & @LF)
For $i = 1 to $list[0]
ConsoleWrite($list[$i] & @LF)
Next
Func _Zip_List($hZipFile)
local $aArray[1]
Local $DLLChk = _Zip_DllChk()
If $DLLChk <> 0 Then Return SetError($DLLChk, 0, 0) ;no dll
If Not FileExists($hZipFile) Then Return SetError(1, 0, 0) ;no zip file
$oApp = ObjCreate("Shell.Application")
$hList = $oApp.Namespace($hZipFile).Items
For $item in $hList
_ArrayAdd($aArray,$item.name)
Next
$aArray[0] = UBound($aArray) - 1
Return $aArray
EndFunc
Func _Zip_DllChk()
If Not FileExists(@SystemDir & "\zipfldr.dll") Then Return 2
If Not RegRead("HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}", "") Then Return 3
Return 0
EndFunc
LA valeur retournéCode : Tout sélectionner
"============== Contenu du ZIP ============"
teste.ini
teste.bat
teste.exe
test.txt
Re: [..] Planifier un dl et automatiser sa décompression
Posté : lun. 27 oct. 2008 17:59
par Ghost911
il faut que je réfléchisse
► Afficher le texte
Code : Tout sélectionner
Func _Zip_SearchInFile($hZipFile, $sSearchString)
local $aArray
$list = _Zip_List($hZipFile)
for $i = 1 to UBound($list) - 1
_Zip_Unzip($hZipFile, $list[$i], @TempDir & "\tmp_zip.file")
FileRead(@TempDir & "\tmp_zip.file")
if StringInStr($read,$sSearchstring) > 0 Then
_ArrayAdd($aArray, $list[$i])
EndIf
Next
if UBound($aArray) - 1 = 0 Then
Return SetError(1,0,1)
Else
Return $aArray
EndIf
EndFunc
Re: [..] Planifier un dl et automatiser sa décompression
Posté : mar. 28 oct. 2008 09:35
par Tlem
@Ghost911
N'oubliez pas les balises de code lorsque vous placez du code.
Re: [..] Planifier un dl et automatiser sa décompression
Posté : mer. 29 oct. 2008 15:24
par Ghost911
oui dsl je les oublie a chaque fois
