IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Sauvegarde sur clé usb.


Sujet :

Delphi

  1. #1
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut Sauvegarde sur clé usb.
    Bonjour,

    Je fais appel à vous car je me pose une question en ce qui concerne la sauvegarde de données sur clé usb...

    je vous explique :

    -Je développe un logiciel qui devra stocker des informations sur une clé usb, la taille de ces informations peut être importantes (on va dire 600 Mo )...
    - Le problème c'est que je ne voudrai pas que cette base de données (importantes) soit corrompue par le retrait de la clé usb...

    En faite je voudrai savoir exactement quand l'utilisateur peut enlever sa clé usb sans qu'il y'ai risque de corruption...

    Si l'utilisateur retire immédiatement sa clé après avoir quitté le logiciel, y'aura t'il un problème ? (cad juste après la sauvegarde des 600 Mo )...

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Tu peux utiliser la fonction Copier Fichier de la FAQ ou encore Copier Répertoire. Ces deux fonctions renvoient comme résultat un booléen :
    True : Copie effectuée avec succès
    False : Erreur! Copie non effectuée! Recommencer

    A partir de là, tu sais si le retrait peut être fait ou pas
    Aussi, si ça t'intéresse, j'ai réalisé un petit composant avec les sources pour ce qui est des détections de clé à l'insertion, au retrait, avec la possibilité d'effectuer un retrait en toute sécurité via le programme

    Si ça t'intéresse donc, tu peux aller voir la discussion et plus précisément ce post qui contient les sources ainsi qu'une démo

    En espérant t'avoir aidé!
    A+

  3. #3
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut
    Merci beaucoup pour ta réponse...

    En faîte il ne s'agit pas de copie de fichier ou de repertoire. Ici mon logiciel écrit directement dans sa base de donnée en fin d'execution (sauvegarde)...

    "Aussi, si ça t'intéresse, j'ai réalisé un petit composant avec les sources pour ce qui est des détections de clé à l'insertion, au retrait, avec la possibilité d'effectuer un retrait en toute sécurité via le programme "
    C'est exactement cela qu'il me faut, je regarde tout ça et te remercie beaucoup... C'est vraiment gentil

    Bonne journée

  4. #4
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut
    Juste une petite question :

    "avec la possibilité d'effectuer un retrait en toute sécurité via le programme "
    Comment fais tu, je vois bien le bouton ejecter dans la démo mais le problème c'est que ça n'a aucune influence sur ma clé usb ?

    Merci bien

    Bon finalement le problème vient de vista, la fonction semble renvoyer un CR_ACCESS_DENIED

  5. #5
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut
    Je cherche un petit peu ...

    La solution se trouve ici

    http://www.codeproject.com/KB/system...select=1903231

    On doit ajouter le flag CM_REMOVE_NO_RESTART à la fonction malheureusement ca ne fonctionne toujours pas

    Dernier edit :

    Bon alors là vraiment je n'en sais rien je suis décidemment trop nul pour ce genre de truc

    -> finalement dans le compo il y'a deux choses qui me dérangent et que je vais essayer de modifier
    -> 1 : Windows réagit à tous ça, je voudrai que tout se fasse en arrière plan comme avec l'outil disponible ici (aucune idée... ici )
    http://www.uwe-sieber.de/usbstick_e.html
    -> 2 le rendre compatible vista... ()

    Si tu as une idée, n'hésite pas, je vais prendre un peu de recul je me documenterai et essaierai tout ça... si je trouve, je donnerai ma solution ici et ton composant modifié ...

    Merci bien encore



    Bon pour le rendre compatible vista je galère :

    J'ai quelques petites questions :

    Pourquoi trois fonctions differentes pour la même chose ?

    TCM_Request_Device_EjectA = function(dnDevInst: DEVINST;
    pVetoType: PPNP_VETO_TYPE; // OPTIONAL
    pszVetoName: PAnsiChar; // OPTIONAL
    ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
    TCM_Request_Device_EjectW = function(dnDevInst: DEVINST;
    pVetoType: PPNP_VETO_TYPE; // OPTIONAL
    pszVetoName: PWideChar; // OPTIONAL
    ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
    TCM_Request_Device_Eject = function(dnDevInst: DEVINST;
    pVetoType: PPNP_VETO_TYPE; // OPTIONAL
    pszVetoName: PTSTR; // OPTIONAL
    ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
    Quand je rajoute le flag CM_REMOVE_NO_RESTART
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      DriveInstance:=GetVolumeNameForVolumeMountPointString(MediaLetter+':\');
      GetDriveInstanceID(DriveInstance, Inst);
      VetoType := 0;
    CM_Request_Device_Ejectw(inst,@VetoType, nil, 0, CM_REMOVE_NO_RESTART);
    Il me sort CR_INVALID_FLAG , là je capte pas !


    Suite ici :

    http://www.developpez.net/forums/sho...=468492&page=6

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    De mémoire au sujet des clés USB, il existe au moins deux générations :
    1. Celle assez ancienne... qui ne permettait le retrait de la clé une fois tout terminé ; sinon the cata...
    2. La plus récente, avec certaines protections afin justement d'éviter ce blème.

    Donc à mon avis, tout programme de sav sera intimement lié à la techno de la clé...

    Complément USB/PnP :
    http://fr.wikipedia.org/wiki/Plug_and_Play

  7. #7
    Membre actif Avatar de remixtech
    Profil pro
    Enseignant
    Inscrit en
    Février 2003
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2003
    Messages : 272
    Points : 214
    Points
    214
    Par défaut
    Finalement la solution a été trouvé sur l'autre topic disponible plus haut ( il me semble ) ...

    Compatible vista etc.. etc... etc ...
    Mais je ne pense pas que ce soit une question de clé ? C'est windows qui gère son tampon d'écriture non ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/02/2012, 10h20
  2. sauvegarde sur cle usb
    Par amat-info dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 05/01/2011, 22h49
  3. Sauvegarde sur DAT usb sous RH AS 3
    Par kazaboua dans le forum Administration système
    Réponses: 2
    Dernier message: 25/10/2006, 10h26
  4. Sauvegarder sur une clef usb par ex
    Par pasbonte dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 18h23
  5. [VB.NET] Sauvegarde de fichier sur clé USB
    Par cyrcroix dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/06/2005, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo