Bonjour,
J'aimerais savoir s'il est possible sous Delphi de détecter la présence un périphérique USB. Existe-t-il des commandes ou composants tout faits sous
Delphi ?
Bonjour,
J'aimerais savoir s'il est possible sous Delphi de détecter la présence un périphérique USB. Existe-t-il des commandes ou composants tout faits sous
Delphi ?
Salut
Tu peux déjà lire cette discussion d'ero-sennin sur le sujet: ici
@+ Claudius
Salut,
Tu peux aller voir mon thread (page 5 post 65 il y a les sources ainsi qu'une démo)
En espérant que celà t'aide
[Edit]
Grillé
J'ai télécharger la démo de ero-sennin concernant la détection automatique un périphérique USB. Je suis allé à la page 5 post 65 et télécharger DemoUSBStorage+paquetage(2)zip. Quand je compile l'application il y un message suivant: Fichier non trouvé 'Variant.pas'. D'après les conseils
C:\Program Files\Borland\Delphi7\Sources\rlt\Sys mais je ne trouve pas est ce du faite que j'ai delphi 5 ? En ce qui concerne je voudrai bien un exe de ero-sennin pour voir s'il l'application me convient. Merci d'avance
Salut,
A première vu, je dirai que le soucis provient de la configuration de Delphi ...
Le mieux serait de faire une recherche sur ton disque dur du fichier mentionné (Variant.pas) afin de voir si il est bien présent sur ton disque dur.
Sinon, je t'ai mis à disposition l'éxecutable.
Tiens nous au courant de la situation!
A+
Ok merci ero-sennin il fonctionne sans aucun de souci mais quand j'insère la clé USB on voit la fenetre de windows de xp qui vienne s'afficher sur la fenetre de ton appli (si on peut fermer cette fenetre quand j'insère la cle USB). Sinon est cet exe a le meme code que "DemoUSBStorage+paquetage(2)zip"?.
Re,
Pour enlever la fenêtre d'exécution automatique lors qu'un média est connecté, tu peux faire ceci :
Je n'ai pas le temps de voir celà par programmation ...Cliquer Démarrer/Exécuter, puis saisir la commande suivante :
gpedit.msc
- Cliquer sur Configuration Ordinateur/Modèles d'administration/Système
- Double-cliquer sur "Désactiver le lecteur automatique"
- Là tu peux sélectionner soit :
o "Activer" et mettre celà pour "Lecteur de CD-ROM"
o "Désactiver"
- Valider en cliquant sur OK
Pour ta seconde question, la démo que je t'ai fourni est bien le projet qui provient de "DemoUSBStorage+paquetage(2)zip" ... Je l'ai juste compilé.
La méthode pour enlever la fenêtre d'exécution automatique marche nickel. Bien vu l'Hérro. Mais par contre j'ai dézipper de
nouveau "DemoUSBStorage+paquetage(2)zip" et quand je lance le projet dpr. J'ai un message suivant Classe TUSBSTORAGE non trouve. Ignorer l'erreur ou continuer etcc. Et quand je clique sur annuler j'ai une deuxième fenetre Erreur à la création de la fiche class TUSBStorage non trouve.
Je crois qu'il faut installer le paquet mais j'ai un petit doute(écraser la configuration installer d'origine du PC).
Avez vous rencontrer ce genre de message.
Salut yann87,
Concernant ton soucis, tu peux tout simplement installer le paquet (USBStorage.dpk) et cliquer sur compiler puis installer . Il va te mettre un nouvel onglet s'appellant JlnCompo.
Par contre, je ne te suis pas en ce qui concerne ce passage:
Envoyé par yann87
j'ai bien le paquet (USBStorage.dpk). Je vais dans composant et ensuite installer un composant. Je vais chercher le Paquet en question USBStorage.dpk. Ensuite dans nom d'unité je choisis "UUSBStorage.pas" et Nom du paquet je sélectionne (USBStorage.dpk). Je compile deux erreurs :
1- [Erreur] USBStorage.dpk(4): Directive de compilation incorrecte : 'ALIGN'
2- [Erreur fatale] USBStorage.dpk(28): Paquet requis 'rtl' non trouvé
Je crois qu'il faut installer le paquet mais j'ai un petit doute(écraser la configuration installer d'origine du PC). Je travaille avec un pc du boulot quand je charge le composant le projet marche bien mais le souci c'est les autres projets dans ce PC je ne retrouve plus les fenetres comme avant : donc c'est la galère.
Pour ma part, je fais comme ceci :
- Fermer Delphi
- Double cliquer sur USBStorage.dpk
- Cliquer sur Compiler puis sur Installer
- Le composant est bien installé ...
Sinon, tu peux faire autrement!
Tu fais ceci :
- Ouvrir Delphi
- Fichier => Tout fermer
- Composant
- Installer un composant
- Nom de l'unité => USBStorage.pas
- Nom du paquet => dclusr.dpk (par défaut)
- Ok
J'espère que ton soucis sera résolu! Sinon, si tu ne retrouve plus les fenêtres ( je comprends par là que la palette de composant change de place), tu peux faire :
- Composant
- Configurer la Palette
- Modifier à ta guise l'emplacement des composants
J'espère répondre correctement à ta question
@+
Je fais les deux méthodes toujours le même message d'erreurs. Je pense plutôt c'est ma version de delphi qui est peut-être pas compatible avec ce composant. Pour ma part j'ai la version de delphi 5. Et je ne peux faire autrement car "IL FAUT FAIRE DES ECONOMIES" comme dirai mon boss!!!!
Alors passes de bon week-end et si tu reviens le Lundi avec une réponse alors je m'inclinerai trois fois avant de te poser la même question!
Alors là, je ne suis pas expert dans ce domaine
Une autre piste, si tu veux utiliser le composant, serait de le créer de façon dynamique. Pour ce faire, (et pour faire simple), copie colle le fichier USBStorage.pas dans le dossier de ton projet. Ensuite, dans ton projet, tu rajoutes l'unité UUSBStorage dans les uses. Et pour terminer, tu crées ton composant dans le OnCreate de ta Form :
Sinon, moi je suis sous Delphi 7 ... Si ceux qui ont une version 5 ont eu le même soucis mais ont trouvé la solution ... veuillent bien nous éclairer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, UUSBStorage; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } procedure OnConnect(Sender: TObject); procedure OnDisconnect(Sender: TObject); end; var Form1: TForm1; USBStorage:TUSBStorage; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin USBStorage:=TUSBStorage.Create(Self); USBStorage.MediaType:=mtAll; USBStorage.ShowSizeType:=False; USBStorage.OnUSBConnect:=OnConnect; USBStorage.OnUSBDisconnect:=OnDisconnect; end; procedure TForm1.OnConnect(Sender: TObject); begin ShowMessage('Nouveau Média Inséré'); end; procedure TForm1.OnDisconnect(Sender: TObject); begin ShowMessage('Média Déconnecté'); end; end.
Merci
Bonjour, désolé de venir un peu tard sur cette discussion.
J'essaie de compiler le composant usbstorage.dpk sous Delphi XE10.2 Tokyo
J'ai bien l'unité UUSBStorage, ainsi que la dll setupapi.dll qui est dans syswow64
Mais il y a quelques soucis. J'ai vu que ce composant utilise la JCL/JVCL installés sur mon poste.
Il ne reconnait pas la commande loadApi. J'ai bien cherché sur le net du côté de la JCL/JVCL et JWCL, mais il n'y a rien à faire.
Sur un autre poste avec Delphi XE2, pas de souci ... Sur le net, je ne vois guère la trace de UsbStorage qui pourtant semble appartenir à la jcl et outils connexes
Peut-être y a t'il une idée sur ce forum(?) D'avance Merci
Vadim
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager