@maxprof
Студент

Как решить проблему с Windows Forms?

Здравствуйте, пытаюсь разобраться как создать что-то типа диспетчера задач с возможностью просмотра "начинки" ПК.
В общем так называемая "начинка" отображается отлично, а вот процессы Listbox выводить не хочет. Подскажите что исправить новичку пожалуйста!)

private void button100_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            var processList = Process.GetProcesses();
            foreach (var proc in processList)
                listBox1.Items.Add(String.Format("{0}.exe", proc.ProcessName));
        }
 
        private void button200_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)
            {
                var taskName = listBox1.Items[listBox1.SelectedIndex].ToString();
                taskName = taskName.Substring(0, taskName.Length - 4);
                foreach (var procToKill in Process.GetProcessesByName(taskName))
                    procToKill.Kill();
                button100.PerformClick();
            }
        }
 
 
        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            button200.PerformClick();
        }
 
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
 
        }
        
 
        private void button1_Click(object sender, EventArgs e)
        {
            ManagementObjectSearcher Video1 =
                new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_VideoController");
 
            foreach (ManagementObject vid in Video1.Get())
            {
                richTextBox1.Clear();
 
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
                richTextBox1.Text += "                                          Win32_VideoCard" + "\n";
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
 
                richTextBox1.Text +=
                    " Назва: " + vid.GetPropertyValue("Name") + "\n" +
                    " Процесор: " + vid.GetPropertyValue("VideoProcessor") + "\n" +
                    " Відео пам'яті (в Mb): " +Math.Round( System.Convert.ToDouble(vid.GetPropertyValue("AdapterRAM"))/1024/1024)+ "\n" +
                    " Розширення дисплея: " + vid.GetPropertyValue("VideoModeDescription") + "\n" +
                    " Обновлення: " + vid.GetPropertyValue("CurrentRefreshRate");
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            ManagementObjectSearcher Processor2 =
                new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Processor");
 
            foreach (ManagementObject proc in Processor2.Get())
            {
                richTextBox1.Clear();
 
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
                richTextBox1.Text += "                                          Win32_Processor" + "\n";
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
 
                richTextBox1.Text +=
                    " Назва: " + proc["Name"] + "\n" +
                    " Кількість ядер: " + proc["NumberOfCores"] + "\n" +
                    " Максимальна швидкість (в MHz): " + proc["MaxClockSpeed"] + "\n" +
                    " Розмір кеша L2 (в Byte): " + proc["L2CacheSize"] + "\n" +
                    " Id проесора: " + proc["ProcessorId"];
 
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            ManagementObjectSearcher Memory3 =
                new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_PhysicalMemory");
 
            richTextBox1.Clear();
 
            richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
            richTextBox1.Text += "                                          Win32_Memory" + "\n";
            richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
 
            foreach (ManagementObject mem in Memory3.Get())
            {
                richTextBox1.Text +=
                    " Модуль пам'яті (№): " + mem["BankLabel"] + "\n" +
                    " Потужність (Gb): " + Math.Round(System.Convert.ToDouble(mem["Capacity"]) / 1024 / 1024 / 1024) + "\n" +
                    " Швидкість (MHz): " + mem["Speed"]+"\n"+
                    "-------------------------------------------";
 
                richTextBox1.Text += "\n";
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            string hdd1_1 = @"\root\cimv2:Win32_LogicalDisk.DeviceID='C:'";
            string hdd1_2 = @"\root\cimv2:Win32_LogicalDisk.DeviceID='D:'";
 
            ManagementObject hdd1 = new ManagementObject(hdd1_1);
            ManagementObject hdd2 = new ManagementObject(hdd1_2);
            
            richTextBox1.Clear();
 
            richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
            richTextBox1.Text += "                                          Win32_HDD" + "\n";
            richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
            
           
            richTextBox1.Text += "\n";
            
            richTextBox1.Text +=
                "---HDD Диск (D)---"+"\n"+
                " Опис: " + hdd2["Description"] + "\n" +
                " Файлова система: " + hdd2["FileSystem"] + "\n" +
                " Вільно пам'яті (Gb): " + Math.Round(System.Convert.ToDouble(hdd2["FreeSpace"]) / 1024 / 1024 / 1024) + "\n" +
                " Загальний об'єм (Gb): " + Math.Round(System.Convert.ToDouble(hdd2["Size"]) / 1024 / 1024 / 1024);
        }
 
        private void button1Os_Click(object sender, EventArgs e)
        {
            WqlObjectQuery os5 =
                new WqlObjectQuery("SELECT * FROM Win32_OperatingSystem");
            ManagementObjectSearcher OS =
                new ManagementObjectSearcher(os5);
 
            foreach (ManagementObject mo in OS.Get())
            {
 
                richTextBox1.Clear();
 
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
                richTextBox1.Text += "                                          Win32_OS" + "\n";
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
 
                richTextBox1.Text +=
                    " Назва: " + mo["Caption"] + "\n" +
                    " Номер збірки: " + mo["BuildNumber"] + "\n"+
                    " Встановлений пакет оновлення: " + mo["CSDVersion"] + "\n" +
                    " Ім'я ПК: " + mo["CSName"] + "\n" +
                    " Дата встановлення ОС: "+
                        ManagementDateTimeConverter.ToDateTime(mo["InstallDate"].ToString())+"\n"+
                    " Зареєстрований користувач ОС: " +mo["RegisteredUser"]+"\n"+
                    " Серійний номер продукту: " +mo["SerialNumber"]+"\n"+
                    " Фізичний розділ диска з ОС: " +mo["SystemDevice"]+"\n"+
                    " Системний каталог: " +mo["SystemDirectory"]+"\n"+
                    " Номер версії ОС: " + mo["Version"]+"\n"+
                    " Windows каталог: " +mo["WindowsDirectory"];
            }
        }
         private void notifyIcon1_BalloonTipClicked(object sender, EventArgs e)
        {
            ShowAndRestoreForm();
        }
 
        private void notifyIcon1_DoubleClick(object sender, EventArgs e)
        {
            ShowAndRestoreForm();
        }
 
        private void ShowAndRestoreForm()
        {
            Show();
            WindowState = FormWindowState.Normal;
        }
 
        private void Form1_Resize(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Minimized)
                Hide();
        }
         private void button1_Click_1(object sender, EventArgs e)
        {
            richTextBox1.Clear();
 
            ManagementObjectSearcher searcher =
                   new ManagementObjectSearcher("root\\CIMV2",
                   "SELECT * FROM Win32_BIOS");
 
            foreach (ManagementObject queryObj in searcher.Get())
            {
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
                richTextBox1.Text += "                                          Win32_BIOS" + "\n";
                richTextBox1.Text += "-----------------------------------------------------------------------------------------" + "\n";
 
                if (queryObj["BIOSVersion"] == null)
                    richTextBox1.Text += " Версія BIOS: " + queryObj["BIOSVersion"]+"\n";
                else
                {
                    String[] arrBIOSVersion = (String[])(queryObj["BIOSVersion"]);
                    foreach (String arrValue in arrBIOSVersion)
                    {
                        richTextBox1.Text += " Версія BIOS: " + arrValue + "\n";                        
                    }
 
                    richTextBox1.Text += " Виробник: " + queryObj["Manufacturer"]+"\n";
 
                    richTextBox1.Text += " Серійний номер: " + queryObj["SerialNumber"]+"\n";
                }  }   }
         private void Form1_Load(object sender, EventArgs e)
        {
 
        }
         private void button1_Click_2(object sender, EventArgs e)
        {
 
        }
  • Вопрос задан
  • 2489 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AntonGoretskiy
using System.Diagnostics;

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist){
Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы