Usb copy

Soyez le premier à donner votre avis sur cette source.

Vue 13 091 fois - Téléchargée 2 499 fois

Description

Petit logiciel permettant de copier ou déplacer les fichiers d'un périphérique usb (clé usb, clé mp3, app photo...) et de les trier dans un répertoire daté.

Si le logiciel ne marche pas vérifiez que vous avez les références Microsoft WMI Scripting et Microsoft Scripting Runtime.

Seul souci repéré pour le moment, pendant la copie d'un fichier l'interface du logiciel se fige. On le remarque lorsqu'on déplace de gros fichier.

Cette idée m'a été inspirée par d'autre source alors merci à leur auteurs.

Conclusion :


N'hésitez pas à laisser des commentaires détaillés si vous pensez qu'il est possible d'améliorer le logiciel.
J'débute alors tout commentaire peut m'être utile.

Merci

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
AllAPI est ton ami comme on dit! (cf. http://www.mentalis.org/index2.shtml => API-Viewer et API-Guide)
Pour une version Fr de API-Guide mais juste un peu moins complète : www.progotop.com de notre ami DarkSidious

Sinon, voici la définition donnée par POP-API :
"
La fonction SHFileOperation permet d'afficher la boîte de progression utilisée par Windows lors de la copie ou la suppression de fichiers.
"
int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);
lpFileOp : Variable de type SHFILEOPSTRUCT qui définit l'opération a effectuer sur le fichier.
LISTE DES OPERATIONS
Private Const FO_COPY &H2 Copie les fichiers spécifiés de pFrom vers pTo
Private Const FO_DELETE &H3 Efface les fichiers de pFrom (pTo est ignoré)
Private Const FO_MOVE &H1 Déplace les fichiers de pFrom vers pTo
Private Const FO_RENAME &H4 Renomme les fichiers spécifiés de pFrom

LISTE DES DRAPEAUX
Private Const FOF_ALLOWUNDO &H40 Préserve de l'opération "ANNULER", si possible
Private Const FOF_CONFIRMMOUSE = &H2
Private Const FOF_FILESONLY &H80 Exécute l'opération seulement sur des fichiers si (*.*) est utilisé dans pFrom
Private Const FOF_MULTIDESTFILES &H1 pTo spécifie de multiples destinations
Private Const FOF_NOCONFIRMATION &H10 Pas de demande de confirmation
Private Const FOF_NOCONFIRMMKDIR &H200 Ne demande pas de confirmation lors de la création d'un répertoire
Private Const FOF_RENAMEONCOLLISION = &H8
Private Const FOF_SILENT &H4 N'affiche pas la boîte de progression de l'opération
Private Const FOF_SIMPLEPROGRESS &H100 Affiche la boîte de progression mais pas les noms des fichiers
Private Const FOF_WANTMAPPINGHANDLE = &H20

En fonction de la rapidité de l'ordinateur, de la taille des fichiers et des options définies, il est possible que la boîte de progression n'apparaîsse pas à l'écran (ou bien trop vite pour être vue...).


Quant à l'API-Guide :
Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
lpFileOp : Pointer to an SHFILEOPSTRUCT structure that contains information the function needs to carry out the operation.
Returns zero if successful or nonzero if an error occurs.


Pour les exemples d'utilisations je te laisse te reporter à ces 3 bibles des APIs!

Enjoy
Messages postés
5
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
10 juillet 2005

me revoilà...
désolé d'avoir mis du temps mais les vacances ça m'prend beaucoup plus de temps que le boulo

j'ai testé cette solution... le principe à l'air pas mal et ça marche plutot bien sauf au moment de lancer la copie

DirCopy = SHFileOperation(SHFileOp)

à cette ligne là précisement...
alors j'ai essayé en créant le répertoire dans lequel vont les fichiers... en mettant un "" à la fin du chemin ... enfin tt plein de truc... mais ça marche toujours pas

si quelqu'un sait comment fonctionne l'api pt etre qu'il aura la réponse... en attendant j'v essayé de trouver des infos là dessus

autre possibilité que j'avais envisagée: créer un exe sans interface qui soit lancé juste pendant la copie... comme ça l'exe avec interface continu a tourné sans pb... enfin j'espere
Messages postés
308
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 juin 2015
1
pour copier des répertoires utilise plutot cette api :
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long


place ceci dans un module :
Option Explicit

Private Type SHFILEOPSTRUCT
HWnd As Long
wFunc As FO_Enum 'as long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Private Enum FO_Enum
FO_DELETE = &H3
FO_MOVE = &H1
FO_COPY = &H2
End Enum
Private Const FOF_ALLOWUNDO = &H40

Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Function DirCopy(ByVal DirSource As String, ByVal DirDestination As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT

With SHFileOp
'copy the directory
.wFunc = FO_COPY
'Select the directory
.pFrom = DirSource
'destination
.pTo = DirDestination
End With
'perform file operation
DirCopy = SHFileOperation(SHFileOp)
End Function

Public Function MoveCopy(ByVal DirSource As String, ByVal DirDestination As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT

With SHFileOp
'move the directory
.wFunc = FO_MOVE
'Select the directory
.pFrom = DirSource
'destination
.pTo = DirDestination
End With
'perform file operation
MoveCopy = SHFileOperation(SHFileOp)
End Function
Messages postés
5
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
10 juillet 2005

Si j'ai bien compris ça part de l'application de base, ça en lance un autre et si l'action n'est pas fini assez vite ça la shoot.

Le mauvais point de mon prgm c'est que pendant la copie l'interface reste figée. Et comme la copie d'un usb ça peut etre long j'veux pas shooter le processus pour autant.
Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
La méthode la plus fiable pour exécuter une action 'out of process' est de passer par un ActiveX EXE (ca fonctionne très bien)
Le seul compromis pour faire du multithreading.

Sur le site de vbAccelerator:
http://www.vbaccelerator.com/home/VB/Code/Libraries/Threading/Multi-threading_using_classes_in_ActiveX_EXEs/article.asp

Guy
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.