[R] API Windows CopyFileEx & MoveFileWithProgress

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

[R] API Windows CopyFileEx & MoveFileWithProgress

#1

Message par GaRydelaMer »

Bonjour

Voila je me lance dans l'utilisation des API Windows pour faire un fenêtre avec des barres de progression lors de la copie de fichier. J'utilise une Fonction de callbak avec les fonction Windows du Kernel32.dll.

Ca fonctionne très bien avec "CopyFileEx", et j'ai voulu allé plus loin avec le déplacement "MoveFileWithProgress" et la la fonction Callback ne semple pas être appelé par Windows, bien que le déplacement du fichier soit éfectuer.

Je suis sous Win7 64, et je voudrez savoir si vous pouvez tester ce bout de code avec d'autre version de Windows et me dire si ca marche.

Ref:
CopyFileEx:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

MoveFileWithProgress:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

CopyProgressRoutine Callback Function
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
► Afficher le texte
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] API Windows CopyFileEx & MoveFileWithProgress

#2

Message par ani »

d'près la documentation de microsoft sur callback(CopyProgressRoutine)
il doit y avoir un retour comme par exemple Return $PROGRESS_CONTINUE

et pour le reste normalement lors de l'appel a la dll copy & move çà doit retourner ret[0].

j'ai pas testé le code, je relis chez microsoft manque des trucs
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] API Windows CopyFileEx & MoveFileWithProgress

#3

Message par GaRydelaMer »

Oui je sais tout ca, la j'ai donné un code pour tester, dans ma fonction je traite le traitement des dossiers, le nom des fichiers, pour des copies multiples. D'après un code que j'ai trouvé sur le site allemand et auquel j'ai ajouté plusieurs modifications.

Si tu teste le code tu verras dans la console:

Code : Tout sélectionner

Copy:
    CallBack Arg
    0%
    10%
    20%
    30%
    40%
    50%
    60%
    70%
    80%
    90%
    100%
Move:
 
Donc la fonction CallBack est appelée dans lors de la copie mais pas le déplacement.
Et je peux pas mettre à jour la GUI lors des déplacement.

Je joint le fichier complet.
Fichiers joints
Files-2.au3
(41.66 Kio) Téléchargé 130 fois
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] API Windows CopyFileEx & MoveFileWithProgress

#4

Message par GaRydelaMer »

Bon, j'ai du nouveau, le fait de déplacer le fichier sur un autre disque la fonction callback est appellé.

Donc on va penser que ca marche et que le déplacement d'un fichier d'un dossier ver un autre dossier du même disque et juste une réécriture de la table d'allocation des fichier sans écrire à nouveau le fichier.

Je passe en Résolu.
Répondre