Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
if() + switch() + cuadro de imagen [C#]

Aquí está la cosa, tengo un formulario de Windows con un cuadro de imagen vacío y algunas etiquetas que obtienen información del sistema usando wmi, se supone que el cuadro de imagen obtiene automáticamente el logotipo del sistema operativo de una carpeta en el proyecto llamado Imágenes usando un si una declaración o un caso de cambio, pero no puedo por mi vida encontrar algo que funcione.

La idea básica es:

si OSN contiene un 7, pictureBoxOS obtiene la imagen llamada W7 de la carpeta de imágenes.

si OSN contiene un 8, pictureBoxOS obtiene la imagen llamada W8 de la carpeta de imágenes y así sucesivamente

OSN es el nombre del sistema operativo

Lo que sigue es algo de lo que está escrito en la clase SysInfo

 public static class SysInfo { public static String GetOSName() { ManagementClass mc = new ManagementClass("Win32_OperatingSystem"); ManagementObjectCollection moc = mc.GetInstances(); String OSN = String.Empty; foreach (ManagementObject mo in moc) { OSN = mo.Properties["Caption"].Value.ToString(); break; } return OSN; }

Luego viene lo que está escrito en el formulario

 public partial class FormSystemInfo : Form { public FormSystemInfo() { InitializeComponent(); LoadTheme(); } private void FormSystemInfo_Load(object sender, EventArgs e) { labelOSName.Text=SysInfo.GetOSName(); labelOSVersion.Text=SysInfo.GetOSVersion(); labelBrandModel.Text=SysInfo.GetBrandModel(); labelProcessorName.Text=SysInfo.GetProcessorName(); labelMemory.Text=SysInfo.GetPhysicalMemory(); labelDriveID.Text=SysInfo.GetDriveID(); labelGPUName.Text=SysInfo.GetGPUName(); labelSerialNumber.Text = SysInfo.GetSerialNumber(); } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para cualquiera que pueda tropezar con esta publicación, encontré una manera de hacer que funcione:

 DirectoryInfo dir = new DirectoryInfo(Application.StartupPath); ManagementClass mc = new ManagementClass("Win32_OperatingSystem"); ManagementObjectCollection moc = mc.GetInstances(); String OSN = String.Empty; foreach (ManagementObject mo in moc) { OSN = mo.Properties["Caption"].Value.ToString(); break; } if (OSN.Contains("7")) { string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W7.png"; pictureBoxOS.Image = Image.FromFile(path); } else if (OSN.Contains("8")) { string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W8.png"; pictureBoxOS.Image = Image.FromFile(path); } else if (OSN.Contains("10")) { string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W10.png"; pictureBoxOS.Image = Image.FromFile(path); } else if (OSN.Contains("11")) { string path = dir.Parent.Parent.Parent.FullName + @"\Pictures\W11.png"; pictureBoxOS.Image = Image.FromFile(path); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda