[R] Progressbar avec filecopy

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
sknano33
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 24 oct. 2012 12:50
Status : Hors ligne

[R] Progressbar avec filecopy

#1

Message par sknano33 » ven. 30 nov. 2012 17:22

hello tout le monde
i need you
je cherche a faire une progressbar avec un filecopy
voici mon script
► Afficher le texte
Probleme 1 : La barre passe directement de 0 (au debut) a 100 ( a la fin du dl ) sans intermediaire
je pense que le probleme vient du fait que le poid du fichier de destination avec filecopy est directement le poid final
il n'y a pas une autre commande tel inetgetsize mais pour filecopy ?????
Probleme 2 : lié au premier je pense , mon label passe aussi de 0 a 100 %

mikell si tu nous regarde ( :D tu as vu j'ai bien progressé :D )

merci d'avance a tous
Modifié en dernier par sknano33 le lun. 03 déc. 2012 17:45, modifié 1 fois.

Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2469
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#2

Message par jguinch » sam. 01 déc. 2012 10:53

Bonjour.
Pas évident ça...

Peut être que la réponse est par là : http://www.autoitscript.com/forum/topic ... -progress/
Bon courage
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

sknano33
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 24 oct. 2012 12:50
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#3

Message par sknano33 » lun. 03 déc. 2012 09:43

Salut et merci
mais la c'est un peu trop compliqué pour moi
il n'y a pas plus simple???
pour tant de fonction dans inetget et pas pour filecopy??
a vous lire

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5885
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#4

Message par mikell » lun. 03 déc. 2012 11:29

Une progressbar ne marchera pas avec FileCopy qui est une fonction bloquante
Faut passer par du FileWrite
Sinon si tu veux du simple ya ça

Code : Tout sélectionner

$s = @scriptdir & "\fichier"
$d = @scriptdir & "\dossier\"
_FileCopy($s, $d)

Func _FileCopy($source, $dest)
    $oShell = ObjCreate("shell.application")
    $oShell.namespace($dest).CopyHere($source,256)  ; 256 = affiche la progressbar de windows
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 )

GaRydelaMer
Modérateur
Modérateur
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#5

Message par GaRydelaMer » lun. 03 déc. 2012 11:43

Bonjour

si c'est possible j'utilise une fonction du forum US:

http://www.autoitscript.com/forum/topic ... o-own-gui/

Y a des exemples.

@sknano33

Va sur la page cité dessus copie tous le texte tu mets ca dans un nouveau script "GUI_MultiFileCopy.au3" enlève les exemples au début du script.
Ensuite dans ton script principal tu ajoutes un #includes "GUI_MultiFileCopy.au3"

Pour lancer la copie dans ton script principal tu appelles la fonction comme dans les exemples en fonction de ton choix.

J'ai modifier la fonction pour la mettre en FR et j'utilise une autre fonction pour créer la liste des fichiers à copier si vous avez besoin je vous donnerais ça.

Mais pour commencer utilise la version originale.

Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 17:51
Localisation : France
Contact :
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#6

Message par Sea » lun. 03 déc. 2012 14:12

Tien j'avais fais ça pour répondre à une autre personne => http://autoitscript.fr/forum/viewtopic. ... 916#p68916

En passant par les API windows c'est très facile à faire(et bien plus rapide/propre que les trucs balancé avant vu que c'est des api windows ;))

sknano33
Niveau 2
Niveau 2
Messages : 28
Enregistré le : mer. 24 oct. 2012 12:50
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#7

Message par sknano33 » lun. 03 déc. 2012 17:44

Merci encore vous êtes des chefs
mikell ton script simple et parfait
GaRydelaMer un peu dur dur pour moi quand même
Sea ca roule aussi
bon ben j'ai qu'a mettre mon [R]
merci encore

Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#8

Message par Utilisateur 3309 supprimé » ven. 04 janv. 2013 09:18

Bonjour,

j'ai voulu tester le bout de code de mikell mais avec des wildcard et ca n'a pas l'air de fonctionner, je n'ai aucun message d'erreur...c'est comme ci l'opération se terminait instantanément... voici a quoi ressemble mon code.

Code : Tout sélectionner

$s = "\\serveur\dossier\*facture*"
$d = "c:\dossier\facture.pdf"
_FileCopy($s, $d)

Func _FileCopy($source, $dest)
    $oShell = ObjCreate("shell.application")
    $oShell.namespace($dest).CopyHere($source,256)  ; 256 = affiche la progressbar de windows
EndFunc
Serait-ce un probleme de "*" ??
mon dossier source est rempli de fichiers sous la forme xxxxxxfactureyyyyy.pdf
facture étant un numéro.
Modifié en dernier par Utilisateur 3309 supprimé le ven. 04 janv. 2013 10:44, modifié 1 fois.

Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 341
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#9

Message par GhostLine » ven. 04 janv. 2013 09:53

$s = "\\serveur\dossier\*facture*.*"

A tester :)

Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#10

Message par Utilisateur 3309 supprimé » ven. 04 janv. 2013 10:49

j'y ai pensé mais c'est pareil... :?
j'ai complété mon message précédent, il manquait des infos importantes.

Donc le code dans le message précédent ne fonctionne pas, mais si je fais comme ci-dessous alors ça fonctionne mais mais je perds le renommage du fichier destination que j'effectue dans le code précédent. Et ca ne m'arrange pas trop...on ne peut pas donner un nouveau nom de fichier en destination ??? pourtant on peut le faire avec le filecopy natif.

Code : Tout sélectionner

$s = "\\serveur\dossier\*facture*.*"
$d = "c:\dossier\"
_FileCopy($s, $d)

Func _FileCopy($source, $dest)
    $oShell = ObjCreate("shell.application")
    $oShell.namespace($dest).CopyHere($source,256)  ; 256 = affiche la progressbar de windows
EndFunc


 

Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 341
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#11

Message par GhostLine » ven. 04 janv. 2013 10:53

Utiliser Filemove pour renommer ton fichier après l'avoir copié ? Comme dit dans la doc de Filemove : "Because AutoIt lacks a "FileRename" function, use FileMove to rename a file!" :)

Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#12

Message par Utilisateur 3309 supprimé » ven. 04 janv. 2013 11:14

ca sort du contexte de la fonction _filecopy qui permet d'avoir la fenetre de progression...

A l'heure actuelle mon code marche tres bien avec un filecopy mais je n'ai pas de barre de progression, d'ou mon post ici :wink:

EDIT:
ah j'ai compris ce que tu veux dire....renomer le fichier après l'avoir copié avec la fonction....effectivement ca va marcher, donc au pire on peut effectivement faire comme ça, m'enfin j'aurai aimé un truc plus "propre" :D

Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 341
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#13

Message par GhostLine » ven. 04 janv. 2013 12:38

Bah, le principal n'est il pas que ça fonctionne ? :wink:

Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 17:51
Localisation : France
Contact :
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#14

Message par Sea » ven. 04 janv. 2013 13:01

Regarde ce que j'ai posté plus haut.... C'est propre c'est interne a windows et rapide enfin bref a toi de voir...

Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#15

Message par Utilisateur 3309 supprimé » ven. 04 janv. 2013 14:19

j'ai vu, mais ca ne me convient pas car cela necessite d'indiquer manuellement les fichiers source et destination, ce que je veux faire c'est du 100% automatique, déclenché par une tache planifiée. la visu de la barre de progression c'est juste pour indiquer que le serveur est en train de copier des fichiers si on va dessus. Le bout de code de Mikell me semblait plus simple car il ne fait que quelques lignes. mais merci quand même :wink:

Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 17:51
Localisation : France
Contact :
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#16

Message par Sea » ven. 04 janv. 2013 14:23

Je ne vois pas ou ai le problème...
Dans mon code posté ici http://autoitscript.fr/forum/viewtopic. ... 916#p68916

Il suffit de modifier

Code : Tout sélectionner

$file_a_copier = FileOpenDialog('Select file',@ScriptDir,'All files (*.*)')
$destination = FileSaveDialog('Save your files',@ScriptDir,'All files(*.*)')
 
par

Code : Tout sélectionner

$file_a_copier = C://ton fichier
$destination = C://Ton fichier de destination
 
Tu peux trait bien automatisé cela...

Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#17

Message par Utilisateur 3309 supprimé » lun. 07 janv. 2013 22:32

merci sea ! effectivement j'ai pas percuté :? :mrgreen:

Répondre