Section C
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Section C

Bienvenue sur le Forum des étudiants de la Section C et leurs amis
 
AccueilAccueil  GalerieGalerie  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Bon plan achat en duo : 2ème robot cuiseur ...
Voir le deal
600 €

 

 [Résolu][Delphi]Numéro d'un Drive

Aller en bas 
3 participants
AuteurMessage
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 12:22

Salam
j'ai installé le composant Tdiskeject, qui sert à ejecter des composants materiels comme clé usb par exemple!
mais comme il ne contient que 4 propriétés, et la seul que je peux manipuler c'est le numéro du Drive
par défaut y'a #0 !
je voudrai ssavoir comment je peux obtenir les numéro des drives, sachant que ces numéros changent d'un pc à un autre
tout ça est sous windows !
merci d'avances


Dernière édition par le Mer 28 Déc - 17:14, édité 1 fois
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 15:25

j'ai pu résoudre ce probleme en utilisant un TDrivecombobox, et en affectant la valeur du lecteur sélectionné au TDiskEject comme suit :
Code:

Diskeject.drive:=Drivecombobox.drive;

mais lorsque je mets Diskeject.eject pour ejecter le drive sélectionné, rien ne se passe (pour un flashdisk) et le cd n'apparait pas malgré qu'il est activé!
et si je veux ejecter une partition c: ou d:, il affiche une erreur (c normal) mais pourquoi il n'ejecte pas le flash disk?
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 18:09

avec le lecteur Cd ça marche bien (il l'ejecte) mais avec le flash disk il ne fat rien et sait bient que le flashdisk n'est pas ejecté avec :
Code:
if dd.ejected=false then showmessage('Vous pouvez retirer votre materiel')
else
showmessage('materiel non éjécté');

est-ce que je dois aller un peu plus profondément dans ma programmation pour deconnecter un flashdisk?
Revenir en haut Aller en bas
zs_said
Membre Eclairé
Membre Eclairé



Nombre de messages : 285
Date d'inscription : 10/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 18:12

dis moi, tu fais un monologue ???? What a Face

(je plaisente, je voulais pas te laisser poster tt seul ds ce topic)
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 18:15

zs_said a écrit:
dis moi, tu fais un monologue ???? What a Face

(je plaisente, je voulais pas te laisser poster tt seul ds ce topic)

merci said pour cette intrusion, c'est mon lot quotidien de réponse par ls fantomes de ce forum (hacha jojo) !
comme s'ils n'ont jamais touché à delphi Sad
Revenir en haut Aller en bas
zs_said
Membre Eclairé
Membre Eclairé



Nombre de messages : 285
Date d'inscription : 10/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 18:17

faudra peut etre changer de langage de programmation
(avec du JAVA erih ma yekisakch m3a ranou)
Revenir en haut Aller en bas
jojo
Membre Inestimable
Membre Inestimable



Nombre de messages : 305
Age : 74
Emploi : Ingenieur
Date d'inscription : 29/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 21:47

Salam

Scorp, pourquoi ne pas chercher une API de windows pour faire cela. Tu n'aura pas a gerer le probleme menuellement --> moins de complications dans ton programme. Tu n'aura qu'a utiliser cette API et Windows se charge du reste

PS :
Par curiosite (c'est un vilain defaut), Tu developpe quoi au juste ????
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 21:57

bon jojo
c'est pas grave, t'es curieux dans le bon sens !
bein nous sommes en train de développer un module qu'on integreras dans nos applications,
ce module sert à sauvegarder la base de données dans un autre support, avant nous utilisions l'outils de sauvegarde et restauration de windows,serte il est bien mais il estcompliqué pour un non-informaticien
donc on a développé un module, qui fait la copie et on veut simplifier ça pou rl'utilisateur et on lui rajoute meme un bouton pour ejecter le support qu'il a séléctionné!
pour le cd rom ça marche, mais pas pour le flash disk
j'ai pensé au Api de windows, mais je ne les connais pas!
Revenir en haut Aller en bas
jojo
Membre Inestimable
Membre Inestimable



Nombre de messages : 305
Age : 74
Emploi : Ingenieur
Date d'inscription : 29/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 22:36

Salam

Scorp, j'ai trouve des trucs interessants dans www.delphifr.com

Fais une recherche "Ejecter usb" et tu trouvera normalement la solution.

Bon dev
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMar 27 Déc - 22:43

merci jojo
t'es un amouuuuuuur cheese Laughing
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMer 28 Déc - 16:42

Je n'ai trouvé dan sce site que comment détecter un usb ou autre périphérique, mais pas comment l'ejecter! mais c'est déja ça!
pour le composant TDiskeject, en lisant bien son Read-me, j'ai su qu'il n'ejecte pas les usb!
donc ce topic n'avais pas raison d'etre mais j'ai apris des choses!
merci
Revenir en haut Aller en bas
ScOrPiOn
Mister Forum 2006
Mister Forum 2006
ScOrPiOn


Nombre de messages : 3090
Age : 44
Date d'inscription : 11/08/2004

[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive EmptyMer 28 Déc - 17:12

au cas où ça interesse quelqu'un : detection et obtention des informations sur un périphérique USB

Code:
 unit USB_D;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

 PDEV_BROADCAST_HDR = ^TDEV_BROADCAST_HDR;
 TDEV_BROADCAST_HDR = packed record
  dbch_size : DWORD;
  dbch_devicetype : DWORD;
  dbch_reserved : DWORD;
  end;

  PDEV_BROADCAST_VOLUME = ^TDEV_BROADCAST_VOLUME;
  TDEV_BROADCAST_VOLUME = packed record
  dbcv_size : DWORD;
  dbcv_devicetype : DWORD;
  dbcv_reserved : DWORD;
  dbcv_unitmask : DWORD;
  dbcv_flags : WORD;
  end;

type
  TForm1 = class(TForm)

  private
    { Déclarations privées }
    procedure WMDeviceChange(var Msg: TMessage);    message WM_DEVICECHANGE;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  GetLettre : string;
implementation

uses Sauvegarde_Delphi;

{$R *.dfm}


//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// Capture Evenement windows "WMDeviceChange"
procedure TForm1.WMDeviceChange(var Msg: TMessage);
var
    VolName, FileSysName : Array[0..Max_Path]Of Char;
    VolSerial, FileMaxLen, FileFlags : DWord;
    S : string;
begin
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// TESTER si DBT_DEVICEARRIVAL = $8000
//  si oui, ne traiter que les périphériques de stockage de type 0=DeviceTypeOEM
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  if Msg.wParam =$8000 then begin
          if PDEV_BROADCAST_HDR( Msg.LParam )^.dbch_devicetype <>2 then exit;
          if PDEV_BROADCAST_VOLUME( Msg.LParam )^.dbcv_flags <>0 then exit;

// A partir d'ici vous pouvez mettre votre code a executer en cas
// de connection d'un peripherique de stockage USB.
// Vous pouvez aussi par exemple comparer le "Non de volume"
// de ce péripphérique pour affiner le declenchement.

//Affiche dans le textbox les infos du periphérique connécté (pour l'exemple)
        S := 'Connection du périphérique !' +#13+#10+#13+#10;
// Sa lettre "DeviceID"
  str(ln(PDEV_BROADCAST_VOLUME( Msg.LParam )^.dbcv_unitmask)/ln(2)+Ord('A'):2:0,GetLettre);
        S := S + 'DeviceID :'+#9+#9+ char(strtoint(GetLettre)) + ':\' + #13+#10;
// NomVolume + SySfichier + N° serie  du periphérique
  If GetVolumeInformation(pchar(char(strtoint(GetLettre))+':\'),VolName,Max_Path,@VolSerial,
            FileMaxLen, FileFlags,FileSysName,Max_Path)
    Then S := S +'Nom du Volume :' +#9+#9+ VolName
                                +#13+#10;
// Taille et free espace du periphérique
        S := S + 'Taille totale :' +#9+#9+ FloatToStrF(DiskSize(strtoint(GetLettre)-64)div 1024, ffNumber, 18, 0) + ' Kilo-octets' + #13+#10;
        S := S + 'Disponible :' +#9+#9+ FloatToStrF(DiskFree(strtoint(GetLettre)-64) div 1024, ffNumber, 18, 0) + ' Kilo-octets';
        Fc_Sauvegarde_Delphi.memo3.text:=S;
        Fc_Sauvegarde_Delphi.edit1.text:=char(strtoint(GetLettre));
        beep;            // Envoi un beep sonore a la connection
        end;                // Fin de traitement "connection periphérique"



//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// TESTER si DBT_DEVICEREMOVECOMPLETE = $8004
//  si oui, ne traiter que les périphériques de stockage de type 0=DeviceTypeOEM
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  if Msg.wParam =$8004 then begin
          if PDEV_BROADCAST_HDR( Msg.LParam )^.dbch_devicetype <>2 then exit;
          if PDEV_BROADCAST_VOLUME( Msg.LParam )^.dbcv_flags <>0 then exit;

// A partir d'ici vous pouvez mettre votre code a executer en cas
// de déconnection d'un peripherique de stockage USB.
// Affiche dans le textbox le periphérique déconnécté (pour l'exemple)
        S := 'Déconnection du périphérique !' +#13+#10+#13+#10;
// Sa lettre "DeviceID"
  str(ln(PDEV_BROADCAST_VOLUME( Msg.LParam )^.dbcv_unitmask)/ln(2)+Ord('A'):2:0,GetLettre);
        S := S + 'DeviceID :' +#9+#9+ char(strtoint(GetLettre)) + ':\' + #13+#10;
        Fc_Sauvegarde_Delphi.memo3.text:=S;
        beep;            // Envoi un beep sonore a la déconnection
  end;                    // Fin de traitement "déconnection periphérique"
close;
Fc_Sauvegarde_Delphi.setfocus;

end;

end.
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu][Delphi]Numéro d'un Drive Empty
MessageSujet: Re: [Résolu][Delphi]Numéro d'un Drive   [Résolu][Delphi]Numéro d'un Drive Empty

Revenir en haut Aller en bas
 
[Résolu][Delphi]Numéro d'un Drive
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Section C :: L'entraide Informatique :: Développement et Programmation-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser