Bonjour les cerveaux!
Je voudrais savoir s'il existe en c# 1.1 une classe permettant de savoir si un cd est inséré dans le lecteur et de l'éjecter
Merci
Bonjour les cerveaux!
Je voudrais savoir s'il existe en c# 1.1 une classe permettant de savoir si un cd est inséré dans le lecteur et de l'éjecter
Merci
Tu peux utiliser les objets WMI pour faire cela.
Etant tombé amoureux du logiciel WMICodeCreator je n'ai pas pu m'empécher de chercher le code nécessaire pour afficher si un CD est chargé.
Donc voilà :
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 using System; using System.Management; using System.Windows.Forms; namespace WMISample { public class MyWMIQuery { public static void Main() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_CDROMDrive"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("Win32_CDROMDrive instance"); Console.WriteLine("-----------------------------------"); Console.WriteLine("MediaLoaded: {0}", queryObj["MediaLoaded"]); } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } } } }
Si je "nous" traite de cerveaux c'est parce que je trouve que nous réfléchissons bien et apportons des coups de main à d'autres en difficultés!
T'es sûr?Nous traiter de cerveaux reviens à nous insulter
Je teste rapidement ton code te je t'en dis des nouvelles! merci pour toin coup de main.
Oui cela nous enfermes dans un stéréotype qui ne représente pas qui nous sommes réellement.T'es sûr?
Nous n'allons pas épiloguer la dessus, je l'ai mal pris, mais ton intention n'était pas de mépriser et d'insulter, alors je m'ecuse si j'ai été dure.
Je n'ai pas trouvé en WMI pour l'éjection du CD et cela m'étonne.
Enfin MediaLoaded te permet au moins de savoir si le CD est dedans.
Si tu ne trouves pas comment éjecter le CD tu peux toujours faire une PopUp qui demande à l'utilisteur de le faire selon le contexte de ton projet.
Tu l'es souvent mais bon j'aime bien! celà stimule.....alors je m'excuse si j'ai été dur.
Pour en revenir au problème, je bosse en 1.1 ce qui fait que je n'ai pas la classe System.Management
ya d'autre moyens?
merci
Le NameSpace est disponible en 1.1, et voici le lien MSDN pour l'aide basé sur me framework 1.1 :
http://msdn2.microsoft.com/en-us/lib...nt(VS.71).aspx
rhoooo mais après tout le monde va croire que je suis méchant alors que je ne ferais pas de mal à une mouche !!!Tu l'es souvent mais bon j'aime bien! celà stimule.
Oui non je ne ferais jamais de mal à mes mouches, peut être une ou deux homes au petit déj, mais je ne toucherais jamais à mes mouches
Je jette un coup d'oeil au lien et je t'en dis des nouvelles!
Mille milliards de mille sabord! ce namespace existe!
ok! j'ai une question quel type d'application dois-je choisir? console ou windows?
merci ced600
Heu... Peu importe vu que tu peux rajouter dans les références le namespace que tu veux, ou la dll, ou tout autre référence vers des bibliothèques de classes.
Merci ced600 et Thomas! tout marche bien! je voudrais cependant pouvoie éjecter le lecteur s'il est chargé. j'explique mon contexte :
je veux empecher qu'on utilise mon lecteur; je voudrais sonder l'etat du lecteur et s'il est chargé l'éjecter à chaque fois
J'ai pas trouvé du coté WMI
hum! je cherche de mon coté! merci bcp
Je crois que ceci pourrait t'aider à faire ce que tu souhaites mais il s'agit d'appels sur des API Win32.
Merci bcp bcmdev!
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 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace OpenCloseCD { public partial class Form1 : Form { [DllImport("winmm.dll", EntryPoint = "mciSendStringA")] public static extern void mciSendStringA(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback); string rt = ""; public Form1() { InitializeComponent(); } private void buttonOpen_Click(object sender, EventArgs e) { textBox1.Text = "CD Door Is Open Now!"; { mciSendStringA("set CDAudio door open", rt, 127, 0); } } private void buttonClose_Click(object sender, EventArgs e) { textBox1.Text = "CD Door Is Closed Now!"; { mciSendStringA("set CDAudio door closed", rt, 127, 0); } } private void buttonExit_Click(object sender, EventArgs e) { Application.Exit(); } } }
le namespace System.Collections.Generic existe en 1.1?
xa marche les gars
il ne me reste juste qu'a completer avec le code de ced600 pour ejecter dès qu'un cd est chargé!
je vous en donne des nouvelles!
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