elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Detecta disco en el elctor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Detecta disco en el elctor  (Leído 4,165 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Detecta disco en el elctor
« en: 19 Marzo 2021, 14:51 pm »

Hola:

Un programa que detecta el disco del lectro si está dentro o no. me lo muestra en forma de True o False.

No logro que me lo muestre que me diga esto:

Disco en el lector: Sí

Me lo muestra en True.


Ver imagen.

¿Qué se puede cambiar en este código?

Código
  1. using System;
  2. using System.Management;
  3.  
  4. namespace CPU_GPU_Hardware_informacion_consola_01
  5. {
  6.    class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            // Título de la ventana.
  11.            Console.Title = "Título de la ventana.";
  12.  
  13.            // Tamaño de la ventana, x, y.
  14.            Console.SetWindowSize(120, 63);
  15.  
  16.            // Color de fondo.
  17.            Console.BackgroundColor = ConsoleColor.Gray;
  18.  
  19.            // Color de las letras.
  20.            Console.ForegroundColor = ConsoleColor.Black;
  21.  
  22.            // Limpiar pantalla y dejarlo todo gris.
  23.            Console.Clear();
  24.  
  25.            // Visible el cursor.
  26.            Console.CursorVisible = true;
  27.  
  28.            // Nombre del procesador.
  29.            GetMyCPUInfo("Win32_Processor", "Name");
  30.  
  31.            // CD ROM.
  32.            GetMyCPUInfo("Win32_CDROMDrive", "Name");
  33.            Console.Write("Medio cargado: (Disco en el lector:) ");
  34.            GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded");
  35.  
  36.  
  37.            Console.ForegroundColor = ConsoleColor.Blue;
  38.            Console.WriteLine("FIN DEL PROGRAMA.");
  39.  
  40.            // Pulse cualquier tecla para salir.
  41.            Console.ReadKey();
  42.        }
  43.  
  44.        private static void GetMyCPUInfo(string hwclass, string syntax)
  45.        {
  46.            ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
  47.            foreach (ManagementObject mj in mos.Get())
  48.            {
  49.                Console.WriteLine(Convert.ToString(mj[syntax]));
  50.            }
  51.        }
  52.    }
  53. }

Cualquier información aquí.
https://docs.microsoft.com/es-es/windows/win32/cimwin32prov/win32-cdromdrive

Saludos.


« Última modificación: 19 Marzo 2021, 14:58 pm por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Detecta disco en el elctor
« Respuesta #1 en: 20 Marzo 2021, 12:48 pm »

Buenas:

Por ejemplo, en esta parte.
Código
  1. GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded");

¿Hay disco en el lector?

Como me da resultado de true o falso, quiero lograr de alguna manera que me muestre o No.

Quiero hacer algo de esto como indica abajo pero no sale.
Código
  1.            // ¿En el lector hay disco?
  2.            // Sí. Hay disco.
  3.            if (GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded") == true)
  4.            {
  5.                Console.WriteLine("Sí");
  6.            }
  7.  
  8.            // No. No hay disco.
  9.            else
  10.            {
  11.                Console.WriteLine("No");
  12.            }
  13.  

Buscando ideas.

Gracias.


En línea

TickTack


Desconectado Desconectado

Mensajes: 434


CipherX


Ver Perfil
Re: Detecta disco en el elctor
« Respuesta #2 en: 20 Marzo 2021, 14:03 pm »

Y que error te larga si lo tratas de hacer como en la última?
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Detecta disco en el elctor
« Respuesta #3 en: 20 Marzo 2021, 20:11 pm »

Y que error te larga si lo tratas de hacer como en la última?

Buenas:

No seja hacer este if Else.

Código
  1.            // ¿En el lector hay disco?
  2.            // Sí. Hay disco.
  3.            if (GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded") == true)
  4.            {
  5.                Console.WriteLine("Sí");
  6.            }
  7.  
  8.            // No. No hay disco.
  9.            else
  10.            {
  11.                Console.WriteLine("No");
  12.            }

Citar
Error   CS0019   El operador '==' no se puede aplicar a operandos del tipo 'void' y 'bool'
En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Detecta disco en el elctor
« Respuesta #4 en: 21 Marzo 2021, 01:03 am »

Buenas:

Empezando desde cero. Me sale a medias.

Código
  1. using System;
  2. using System.Management; // No olvidar. Añadir en Referencia.
  3.  
  4. namespace Detectar_disco_lector_consola_01
  5. {
  6.    class Program
  7.    {
  8.        // Variables.
  9.        public static string datos = "";
  10.        static void Main(string[] args)
  11.        {
  12.            // Título de la ventana.
  13.            Console.Title = "Detectar disco en el lector.";
  14.  
  15.            // Tamaño de la ventana, x, y.
  16.            Console.SetWindowSize(60, 15);
  17.  
  18.            // Color de fondo.
  19.            Console.BackgroundColor = ConsoleColor.Gray;
  20.  
  21.            // Color de las letras.
  22.            Console.ForegroundColor = ConsoleColor.Black;
  23.  
  24.            // Limpiar pantalla y dejarlo todo en color de fondo.
  25.            Console.Clear();
  26.  
  27.            // Visible el cursor.
  28.            Console.CursorVisible = true;
  29.  
  30.            // Nombre del dispositivo o lector.
  31.            Console.Write("Nombre del dispositivo: ");
  32.            ConsigueComponentes("Win32_CDROMDrive", "Name");
  33.  
  34.            // Disco en la unidad del lector.
  35.            Console.Write("Disco en el lector: ");
  36.            ConsigueComponentes("Win32_CDROMDrive", "MediaLoaded");
  37.  
  38.            // ¿Disco en el lector?
  39.            if (datos == "True")
  40.            {
  41.                Console.WriteLine("Disco en el lector: Sí.");
  42.            }
  43.  
  44.            else
  45.            {
  46.                Console.WriteLine("Disco en el lector: No.");
  47.            }
  48.  
  49.            Console.Write("FIN DE PROGRAMA.");
  50.  
  51.            // Pulse cualquier tecla para salir.
  52.            Console.ReadKey();
  53.        }
  54.  
  55.        private static void ConsigueComponentes(string hwclass, string syntax)
  56.        {
  57.            ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
  58.            foreach (ManagementObject mj in mos.Get())
  59.            {
  60.                if (Convert.ToString(mj[syntax]) != "")
  61.                {
  62.                    Console.WriteLine(datos = Convert.ToString(mj[syntax]));
  63.                }
  64.            }
  65.        }
  66.    }
  67. }

Necesito pulir muchas cosas.

Que me detecte el disco en Sí o No.

El programa se puede mejorar, ya que me responde cuando solo aparece un True o False, pero puede ser cualquier dispositivo.

Saludos.
« Última modificación: 21 Marzo 2021, 01:10 am por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Detecta disco en el elctor
« Respuesta #5 en: 22 Marzo 2021, 18:44 pm »

Hola:

Parace ser que por fin me funciona.
Código
  1. using System;
  2. using System.Management; // No olvidar. Añadir en Referencia.
  3.  
  4. namespace Detectar_disco_lector_consola_01
  5. {
  6.    class Program
  7.    {
  8.        // Variables.
  9.        public static string datos = "";
  10.        static void Main(string[] args)
  11.        {
  12.  
  13.            ConsigueComponentes("Win32_CDROMDrive", "MediaLoaded");
  14.  
  15.            // ¿Disco en el lector?
  16.            if (datos == "True")
  17.            {
  18.                Console.WriteLine("Disco en el lector: Sí.");
  19.            }
  20.  
  21.            else
  22.            {
  23.                Console.WriteLine("Disco en el lector: No.");
  24.            }
  25.  
  26.            // Pulse cualquier tecla para salir.
  27.            Console.ReadKey();
  28.        }
  29.  
  30.        private static void ConsigueComponentes(string hwclass, string syntax)
  31.        {
  32.            ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
  33.            foreach (ManagementObject mj in mos.Get())
  34.            {
  35.                if (Convert.ToString(mj[syntax]) != "")
  36.                {
  37.                    datos = Convert.ToString(mj[syntax]);
  38.                }
  39.            }
  40.        }
  41.    }
  42. }

No se si es la mejor forma adecuada para hacer lo que quiero. Porque solo pide que sea true o false y puede ser cualquier otro dispositivo que haga lo mismo.

Ahora me toca implementarlo con Windows Form.


Ver imagen.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No me detecta disco duro USB
Hardware
novalida 3 6,311 Último mensaje 20 Mayo 2010, 23:50 pm
por Aprendiz-Oscuro
No detecta disco duro « 1 2 3 4 »
Windows
ANTRUCK 38 26,008 Último mensaje 3 Enero 2011, 07:38 am
por ANTRUCK
Pc no detecta el disco duro « 1 2 »
Hardware
Lain0x 13 6,188 Último mensaje 1 Noviembre 2015, 01:34 am
por Lain0x
No me detecta el disco duro.
Hardware
Luffy97 1 1,806 Último mensaje 12 Marzo 2016, 14:55 pm
por Songoku
No detecta S.O. en disco M.2
Hardware
vvalencia 2 4,057 Último mensaje 1 Julio 2016, 17:47 pm
por vvalencia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines