Əlbəttə Sevinc xanım bu mükəmməl VB.NET -dir. :))) Buna deyirlər VB.NET kodları altında C#-da proqram yazmaq :)) Amma VB.NET-in bütün funksiyalarını tətbiq etmək olmur, əsas da sevimli operatorum olan On Error Resume Next-i. Tapsanız mənə də yazarsınız, mən hətta dll file kimi kitabxana kimi yazmaq istəyirdim alınmadı :)
Cavabı tapdım. Burdada paylaşıram ki, bəlkə kiməsə lazım olar.
Demək C# RAM-ın göstəricəılərinə baxmaq üçün 3 üsul daha keçərlidir 1-ci üsulda reference olaraq System.Management-i əlavə etməklə objectquery-nin köməyi ilə tapmaq olar. Ümumiyyütlə objectquery-lerin köməyi ilə komputerə xeyli lazımlə sorğular göndərmək mümükündür.
..1-ci usulla belə yazdım
ObjectQuery system = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(system);
ManagementObjectCollection results = searcher.Get();
foreach (ManagementObject result in results)
{
double umumi_ram, Bos_sahe, islenensahe, islenenfaiz, bosfaiz;
//RAM-in umumi hecmi
umumi_ram =Convert.ToDouble((result["TotalVisibleMemorySize"]));
umumi_ram =Math.Round((umumi_ram / (1024)));
//RAM-in bos sahesi
Bos_sahe = Convert.ToDouble((result["FreePhysicalMemory"]));
Bos_sahe =(Bos_sahe / (1024));
bosfaiz =Math.Round(Bos_sahe * 100 / umumi_ram);
//RAM-in islenen sahesi
islenensahe =Math.Round(umumi_ram - Bos_sahe);
islenenfaiz = Math.Round(100 - bosfaiz);
label1.Text = "Ümumi həcm:" + umumi_ram.ToString() + " MB" +
Environment.NewLine + Environment.NewLine + "İşlənən sahə: " + islenensahe + " MB" +
Environment.NewLine + Environment.NewLine + "Boş sahə: " + Bos_sahe.ToString() + " MB"; //+ Ram_virtual;
bu usul C#-da işləyən ən yaxşı üsüldür mən bilən.
2-ci üsulla using System.Runtime.InteropServices; elave etmekle [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)] kitabxanasınıistifadə etməklə. Məncə bu üsul daha qəlizdir.
3.cü üsul isə VB.NET-in ComputerInfo clasindan istifade etməklə. Reference olaraq Microsoft.VisualBasic elave edib ve using Microsoft.VisualBasic.Devices; istifade edib asagidaki kimi almaq olar
3. double umumi_ram, Bos_sahe, islenensahe;
Computer m = new Computer();
umumi_ram = m.Info.TotalPhysicalMemory / (1024 * 1024);
Bos_sahe = m.Info.AvailablePhysicalMemory / (1024 * 1024);
islenensahe = umumi_ram - Bos_sahe;
label1.Text = ("Umimi həcm: " + umumi_ram.ToString() + Environment.NewLine + ", RAM İslenen_sahe:" + islenensahe.ToString() + Environment.NewLine + ", RAM Bos_sahe: " + Bos_sahe.ToString());
en sadə usul bu imis ama sadecə olaraq VB.NET-de belə classin olmasını və onu C#a reference etməyi bilmək lazm imiş
Hər kəsə uğurlar!!