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(); } }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); }