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.
(https://social.msdn.microsoft.com/Forums/getfile/1657202)
Ver imagen (https://social.msdn.microsoft.com/Forums/getfile/1657202).
¿Qué se puede cambiar en este código?
using System;
using System.Management;
namespace CPU_GPU_Hardware_informacion_consola_01
{
class Program
{
static void Main(string[] args)
{
// Título de la ventana.
Console.Title = "Título de la ventana.";
// Tamaño de la ventana, x, y.
Console.SetWindowSize(120, 63);
// Color de fondo.
Console.BackgroundColor = ConsoleColor.Gray;
// Color de las letras.
Console.ForegroundColor = ConsoleColor.Black;
// Limpiar pantalla y dejarlo todo gris.
Console.Clear();
// Visible el cursor.
Console.CursorVisible = true;
// Nombre del procesador.
GetMyCPUInfo("Win32_Processor", "Name");
// CD ROM.
GetMyCPUInfo("Win32_CDROMDrive", "Name");
Console.Write("Medio cargado: (Disco en el lector:) ");
GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("FIN DEL PROGRAMA.");
// Pulse cualquier tecla para salir.
Console.ReadKey();
}
private static void GetMyCPUInfo(string hwclass, string syntax)
{
ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
foreach (ManagementObject mj in mos.Get())
{
Console.WriteLine(Convert.ToString(mj[syntax]));
}
}
}
}
Cualquier información aquí.
https://docs.microsoft.com/es-es/windows/win32/cimwin32prov/win32-cdromdrive
Saludos.
Buenas:
Por ejemplo, en esta parte.
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 Sí o No.
Quiero hacer algo de esto como indica abajo pero no sale.
// ¿En el lector hay disco?
// Sí. Hay disco.
if (GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded") == true)
{
Console.WriteLine("Sí");
}
// No. No hay disco.
else
{
Console.WriteLine("No");
}
Buscando ideas.
Gracias.
Y que error te larga si lo tratas de hacer como en la última?
Cita de: TickTack en 20 Marzo 2021, 14:03 PM
Y que error te larga si lo tratas de hacer como en la última?
Buenas:
No seja hacer este if Else.
// ¿En el lector hay disco?
// Sí. Hay disco.
if (GetMyCPUInfo("Win32_CDROMDrive", "MediaLoaded") == true)
{
Console.WriteLine("Sí");
}
// No. No hay disco.
else
{
Console.WriteLine("No");
}
Citar
Error CS0019 (https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/compiler-messages/cs0019?f1url=%3FappId%3Droslyn%26k%3Dk(CS0019)) El operador '==' no se puede aplicar a operandos del tipo 'void' y 'bool'
Buenas:
Empezando desde cero. Me sale a medias.
using System;
using System.Management; // No olvidar. Añadir en Referencia.
namespace Detectar_disco_lector_consola_01
{
class Program
{
// Variables.
public static string datos = "";
static void Main(string[] args)
{
// Título de la ventana.
Console.Title = "Detectar disco en el lector.";
// Tamaño de la ventana, x, y.
Console.SetWindowSize(60, 15);
// Color de fondo.
Console.BackgroundColor = ConsoleColor.Gray;
// Color de las letras.
Console.ForegroundColor = ConsoleColor.Black;
// Limpiar pantalla y dejarlo todo en color de fondo.
Console.Clear();
// Visible el cursor.
Console.CursorVisible = true;
// Nombre del dispositivo o lector.
Console.Write("Nombre del dispositivo: ");
ConsigueComponentes("Win32_CDROMDrive", "Name");
// Disco en la unidad del lector.
Console.Write("Disco en el lector: ");
ConsigueComponentes("Win32_CDROMDrive", "MediaLoaded");
// ¿Disco en el lector?
if (datos == "True")
{
Console.WriteLine("Disco en el lector: Sí.");
}
else
{
Console.WriteLine("Disco en el lector: No.");
}
Console.Write("FIN DE PROGRAMA.");
// Pulse cualquier tecla para salir.
Console.ReadKey();
}
private static void ConsigueComponentes(string hwclass, string syntax)
{
ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
foreach (ManagementObject mj in mos.Get())
{
if (Convert.ToString(mj[syntax]) != "")
{
Console.WriteLine(datos = Convert.ToString(mj[syntax]));
}
}
}
}
}
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.
Hola:
Parace ser que por fin me funciona.
using System;
using System.Management; // No olvidar. Añadir en Referencia.
namespace Detectar_disco_lector_consola_01
{
class Program
{
// Variables.
public static string datos = "";
static void Main(string[] args)
{
ConsigueComponentes("Win32_CDROMDrive", "MediaLoaded");
// ¿Disco en el lector?
if (datos == "True")
{
Console.WriteLine("Disco en el lector: Sí.");
}
else
{
Console.WriteLine("Disco en el lector: No.");
}
// Pulse cualquier tecla para salir.
Console.ReadKey();
}
private static void ConsigueComponentes(string hwclass, string syntax)
{
ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwclass);
foreach (ManagementObject mj in mos.Get())
{
if (Convert.ToString(mj[syntax]) != "")
{
datos = Convert.ToString(mj[syntax]);
}
}
}
}
}
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.
(https://social.msdn.microsoft.com/Forums/getfile/1657203)
Ver imagen (https://social.msdn.microsoft.com/Forums/getfile/1657203).
Saludos.