|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : savoir si un cd est present dans le lecteur [ Système / Périphérique ] (neil)
Informations & options pour cette discussion
|
mercredi 4 avril 2007 à 09:54:48 |
savoir si un cd est present dans le lecteur

neil
|
Bonjour, je voudrais savoir s'il existe un message envoyé par windows lorsqu'on insert un cd dans un lecteur de cd rom?
Autrement comment faire pour savoir si l'utilisateur a inséré un cd
dans le lecteur sans faire utiliser un timer (avec la commande
findfirst )?
merci
|
|
|
|
mercredi 4 avril 2007 à 17:37:10 |
Re : savoir si un cd est present dans le lecteur

japee
|
Réponse acceptée !
Salut, Tu obtiens la valeur du message d'insertion de CD en utilisant la fonction : ValeurMessage := RegisterWindowMessage('QueryCancelAutoPlay');Tu n'as plus qu'a intercepter le message. L'inconvénient à mon avis, c'est que : - il faut que ton appli ait le focus au moment de l'insertion du CD, - il me semble que ça ne fonctionne qu'avec les CD démarrant avec un autorun... A tester, donc. Bonne prog' 
|
|
|
|
mercredi 4 avril 2007 à 22:34:12 |
Re : savoir si un cd est present dans le lecteur

jelume
|
en utilisant la fonction DiskSize fournit dans Delphi
|
|
|
|
jeudi 5 avril 2007 à 11:45:10 |
Re : savoir si un cd est present dans le lecteur

neil
|
Bonjour, desolé de ne repondre que maintenant mais je n'avais plus de connexion internet lol
J'ai oublié de préciser que le code servait à faire une copie
automatique d'un cd lors de son insertion, donc en fait j'ai un
timer qui regarde si un fichier (ici seulement un fichier vidéo) est
prèsent dans le lecteur cd, si oui il le copie.
Donc mon problème c'est que je dois utiliser un timer en tout temps, méthode que je ne trouve pas trop élégante.
D'où ma question de savoir s'il existe un message envoyé par windows lors de l'insertion d'un cd
Japee> pour ce qui est de ton idée je vais voir si j'arrive à
utiliser ta méthode mais si comme tu le dis cela ne fonctionne qu'avec
un autorun, cela ne convient pas à mon programme.
Jelume> j'ai deja tester disksize mais là aussi il faut un timer donc cela en revient au meme que findfirst;
Merci
|
|
|
|
jeudi 5 avril 2007 à 14:09:04 |
Re : savoir si un cd est present dans le lecteur

jelume
|
tu trouveras ton bonheur ici: http://www.torry.net/pages.php?id=249
|
|
|
|
jeudi 5 avril 2007 à 15:00:05 |
Re : savoir si un cd est present dans le lecteur

japee
|
Réponse acceptée !
Oui, sinon, suite à ta question, j'ai cherché un peu. Comme je n'ai pas le temps de faire avancer plus le code, je te soumets ce que j'ai déjà trouvé : interface
Memo: TMemo; procedure WndProc(var M: TMessage); override;
var wm_QueryCancelAutoPlay: UINT ;
implementation
procedure TForm1.WndProc(var M: TMessage); begin if M.Msg = WM_DEVICECHANGE then begin Memo.Lines.Add(DateTimeToStr(Now) + 'M.Msg = WM_DEVICECHANGE'); case M.WParam of $8000: begin Application.BringToFront; Memo.Lines.Add('Fermeture du tiroir'); end; $8004: Memo.Lines.Add('Ouverture du tiroir'); end; Memo.Lines.Add(Format('M.WParam = %d', [M.WParam])); end else { si l'appli n'a pas le focus, on ne recevra pas le message suivant } if M.Msg = wm_QueryCancelAutoPlay then begin Memo.Lines.Add(DateTimeToStr(Now) + 'M.Msg = wm_QueryCancelAutoPlay'); M.Result := 1; // <- stop AutoPlay end else inherited WndProc(M); end;
procedure TForm1.FormCreate(Sender: TObject); begin wm_QueryCancelAutoPlay := RegisterWindowMessage('QueryCancelAutoPlay'); end;Comme tu peux le constater, j'ai réussi à intercepter les messages d'ouverture et de fermeture du tiroir. Reste à gérer tout ça. Si ça peut t'ouvrir une piste... Bonne prog' 
|
|
|
|
jeudi 5 avril 2007 à 16:10:17 |
Re : savoir si un cd est present dans le lecteur

neil
|
Lapee> Ola j'en attendais pas autant merci, je vais etudier tout ca merci beaucoup
Jelume> je suis allez sur le site et effectivement les
composants présent ont l'air intéressent mais le probleme est que 1 je
possède delphi 7 personnel (or les composant s'arret a delphi 5)et que
malheureusement je n'ai pas le temps de les adapter à D7 et 2 je
cherche pour le moment une méthode sans composants suplémentaires mais
merci d'avoir chercher
|
|
|
|
jeudi 5 avril 2007 à 16:58:22 |
Re : savoir si un cd est present dans le lecteur

neil
|
Japee (desolé pour la faute de frappe)> merci c'est apparament ce que je cherchais , je n'ai plus qu'à adapter mon code, encore merci.
Par contre, je ne comprend pas l'utilité de cette ligne de code, peux tu m'aider ?
application.bringtofront : d'après l'aide en ligne, cela permet de faire de la dernière fenetre active la fenetre au premier plan, mais je ne vois pas pourquoi tu l'utilises à ce niveau du code (d'ailleurs si je supprime cette ligne, je ne vois pas de diffèrence).
Merci
|
|
|
|
jeudi 5 avril 2007 à 17:30:15 |
Re : savoir si un cd est present dans le lecteur

neil
|
Japee, apparament ton code fonctionne (trop) bien , en effet, si j'insère un peripherique, comme une clès USB, l'evenement 'fermeture du tiroir' se déclenche. Y a t'il un moyen de ne gèrer l'evenement pour un leteur donné ? Merci
|
|
|
|
jeudi 5 avril 2007 à 20:25:55 |
Re : savoir si un cd est present dans le lecteur

neil
|
Bon j'ai cherché un peu plus et j'ai donc trouvé comment faire, merci encore pour votre aide.
|
|
|
Cette discussion est classé dans : cd, lecteur, present
Répondre à ce message
Sujets en rapport avec ce message
Ouverture et fermeture d'un lecteur CD [ par Filipe35 ]
bonjour à tous,ma question est la suivante,y a t-il à moyen de gérer l'open et le close d'un (ou de plusieurs)lecteur(s) CD. Plus précisément: Détecti
détection ouverture lecteur CD [ par khemi ]
Bonjourj'ai un gros probleme, j'aimerais détecter lorsque l'utilisateur appui sur le bouton d'éjection d'un lecteur CD.J'ai pensé faire avec les Hooks
message windows et lecteur cd [ par neil ]
bonjours,je voudrai savoir comment faire pour supprimer le message de windows lorsqu'on essaye d'acceder au lecteur de cd alors qu'il n'y a pas de cd.
VTOC virtuelle [ par KIMI1632 ]
Kimi1632salut, je voudrait simuler la présence d' CD/DVD dans mon lecteur qui bloque s'il est vide, voilà a quoi je pense 1- faire une routine qui éc
connaître la/les lettres des lecteurs [ par JackTheRipp3r ]
Salut à tous, j'aimerais savoir comment faire pour connaître la lettre des lecteurs cd-rom/dvd/graveur de l'ordinateur sur lequel est exécuté l'appli.
Lecteur CD [ par Daniel du Plessis Robinson ]
Bonjour,pour un débutantComment peut-on par programme trouver le chemin du lecteur CD (par ex E:\)en VB ou VBAmerci pour votre aide
[Delphi] Erreur Pas de disque dans le lecteur [ par Tavounet ]
Bonjour, J'ai un petit problème en programmation d'un logiciel en Delphi, je réalise le programme de façon à le lancer à partir d'un CD, j'ai donc cré
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|