Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2017, 15:53
REHome
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Cerrar y abrir la bandeja del lector con el botón manualmente, y que lo sepa C#

Hola:

Quiero cerrar y abrir la bandeja del lector de DVD con el botón manualmente, y que lo sepa C#. Estoy usando Visual Studio Community 2017.

En otro momento hicimos desde C#, controlar la bandeja abrirla y cerrarla pulsando los botones como indica en la interfaz de abajo.



Código fuente sencillo de C#:
Código:
    using System;
    using System.Runtime.InteropServices; // No olvidar.
    using System.Text;
    using System.Windows.Forms;
     
    namespace Lector_discos_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            [DllImport("winmm.dll")]
            public static extern Int32 mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, 
                int uReturnLength, IntPtr hwndCallback);
     
            StringBuilder rt = new StringBuilder(127);
     
            private void button_Abrir_Click(object sender, EventArgs e)
            {
                label_Mensaje.Text = "Abriendo...";
                Application.DoEvents();
                mciSendString("set CDAudio door open", rt, 127, IntPtr.Zero);
                label_Mensaje.Text = "Abierto";
            }
     
            private void button_Cerrar_Click(object sender, EventArgs e)
            {
                label_Mensaje.Text = "Cerrando...";
                Application.DoEvents();
                mciSendString("set CDAudio door closed", rt, 127, IntPtr.Zero);
                label_Mensaje.Text = "Cerrado";
            }
        }
    }
Hasta aquí todo bien.

Ahora quiero hacer, saber antes que nada, si es posible que al meter la bandeja con la mano o pulsar el botón físicamente del lector, C# puede saber su estado, cunado está abierto y cuando está cerrado.

En este caso, no hay botones para Windows Form de C#, solo un label que indica el estado "ABIERTO" y "CERRADO".

¿Es posible hacerlo?

Si es así. ¿Cómo se hace?

Lo único que pensé que este enlace valdría la pena o te daba información, pero es otra cosa.

Que tengan buena semana. ;)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar