[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 13:50
Status : Hors ligne

[R] Progressbar avec filecopy

#1

Message par sknano33 »

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 : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#2

Message par jguinch »

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 13:50
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#3

Message par sknano33 »

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
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#4

Message par mikell »

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
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#5

Message par GaRydelaMer »

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 18:51
Localisation : France
Status : Hors ligne

Re: [..] Progressbar avec filecopy

#6

Message par Sea »

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 13:50
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#7

Message par sknano33 »

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é »

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 : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#9

Message par GhostLine »

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

A tester :)
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#10

Message par Utilisateur 3309 supprimé »

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 : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#11

Message par GhostLine »

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é »

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 : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#13

Message par GhostLine »

Bah, le principal n'est il pas que ça fonctionne ? :wink:
Sea
Niveau 6
Niveau 6
Messages : 219
Enregistré le : ven. 22 juin 2012 18:51
Localisation : France
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#14

Message par Sea »

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é »

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 18:51
Localisation : France
Status : Hors ligne

Re: [R] Progressbar avec filecopy

#16

Message par Sea »

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é »

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