Avatar billede nzc Nybegynder
06. februar 2004 - 10:02 Der er 7 kommentarer og
2 løsninger

Info om CPU, RAM og harddiskplads

Hej!

Jeg søger et par metoder der kan give mig indformation om CPU, RAM og harddiskplads. CPU-metoden skal kunne give mig info om hvor mange MHz CPU'en er på. RAM-metoden skal give mig info om hvor mange MB RAM der er i computeren. Harddisk-metoden skal give mig info om hvor mange GB harddisken er på og gerne hvor mange GB eller MB der er fri.

Noget i kan klare ?

NZC
Avatar billede jan_man Nybegynder
06. februar 2004 - 12:15 #1
Der er jo altid måden, hvor du højreklikker på "Denne computer" og vælger Egenskaber. Hermed får du vist CPU og RAM. Du kan også højeklikke på din HD under Denne computer og vælge egenskaber - og hermed få vist harddiskens størrelse samt forbrug.

Men en anden måde er også at bruge Samurize, hvor du på skrivebordet blandt meget andet kan få vist CPU, RAM og harddisk.
Du kan finde det her:
http://www.samurize.dk/

og en lille guide til det:
http://www.tweakup.dk/article/245/dk/
Avatar billede nzc Nybegynder
06. februar 2004 - 13:52 #2
ffs jan_man vågn nu lige lidt op... Der er en grund til jeg har oprettet denne post under PROGRAMMERING/C# ...
Avatar billede jan_man Nybegynder
06. februar 2004 - 14:49 #3
Sorry, ingen grund til at pisse glasskår af den grund!!
Avatar billede jepsen999 Nybegynder
15. februar 2004 - 18:03 #4
Tilføj en reference til System.Management og kør koden:

using System;
using System.Management;

namespace ConsoleApplication1
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            Class1 c1 = new Class1();
            c1.test2();
            Console.ReadLine();
        }
        public void test2()
        {
            // udskift med følgende værdier i linien med ManagementObjectSearcher
            //Win32_Processor
            //Win32_PhysicalMemory
            //Win32_LogicalDisk
            ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PhysicalMemory");
            Console.WriteLine("mos count= " + mos.Get().Count.ToString());
            foreach (ManagementObject mo in mos.Get())
            {
                Console.WriteLine("mo path = " + mo.Path);
                foreach (PropertyData pd in mo.Properties)
                {
                    Console.WriteLine(pd.Name + " = " + pd.Value);
                }
            }
        }
    }
}
Avatar billede jepsen999 Nybegynder
15. februar 2004 - 18:08 #5
Kig på http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/computer_system_hardware_classes.asp
for at finde andre værdier du kan indsætte i constructoren til ManagementObjectSearcher - og for at læse mere om WMI (Windows Management Instrumentation).
Avatar billede jepsen999 Nybegynder
15. februar 2004 - 19:14 #6
Med de værdier du gerne vil finde, bliver det:
        public void WriteCpuInfo()
        {
            // CPU
            ManagementObject mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
            string clockSpeed = mo.Properties["CurrentClockSpeed"].Value.ToString();
            Console.WriteLine("ClockSpeed = " + clockSpeed);
        }

        public void WriteRamInfo()
        {
            //RAM - alle ramklodser skal lægges sammen
            long ramSum = 0;
            ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PhysicalMemory");
            foreach (ManagementObject manObject in mos.Get())
            {
                string ramString = manObject.Properties["Capacity"].Value.ToString();
                ramSum += Convert.ToInt64(ramString);
            }
            Console.WriteLine("Ram (i bytes)= " + ramSum.ToString());
        }

        public void WriteHddInfo()
        {
            // HDD
           
            ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_LogicalDisk");
            foreach (ManagementObject manObject in mos.Get())
            {
                // find KUN harddiske (DriveType=3)
                if (manObject.Properties["DriveType"].Value.ToString() == "3")
                {
                    string name = manObject.Properties["Name"].Value.ToString();
                    string size = manObject.Properties["Size"].Value.ToString();
                    string freeSpace = manObject.Properties["FreeSpace"].Value.ToString();

                    Console.Write("Name = " + name);
                    Console.Write("  -  Size = " + size);
                    Console.WriteLine("  -  Free space = " + freeSpace);
                   
                }
            }
        }
Avatar billede nzc Nybegynder
16. februar 2004 - 08:57 #7
lækkert jepsen999 :)

Nu du er sårn en guru indenfor System.Management og managementobjectsearcher kan du så fikse en metode der undersøger hvor meget man up- og downloader ?

Tak for et godt svar :)
Avatar billede jepsen999 Nybegynder
16. februar 2004 - 18:55 #8
Jeg tror du skal kigge på Win32_PerfFormattedData_Tcpip_NetworkInterface eller måske Win32_PerfFormattedData_Tcpip_NetworkInterface. Jeg ved ikke helt hvad forskellen er, men de beskriver begge noget med "bytes sent", "bytes received",... så det kan ikke være helt ved siden af.

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PerfRawData_Tcpip_NetworkInterface");
Console.WriteLine("mos count= " + mos.Get().Count.ToString());

foreach (ManagementObject mo in mos.Get())
    {
    Console.WriteLine("mo path = " + mo.Path);
    foreach (PropertyData pd in mo.Properties)
    {
    Console.WriteLine(pd.Name + " = " + pd.Value);
    }
}

Læs mere:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_perfrawdata_tcpip_networkinterface.asp

- og tak for point :)
Avatar billede nzc Nybegynder
03. marts 2004 - 13:11 #9
hmm har testet netværkskoden igen og igen og den vil bare ikke opføre sig ordentligt. Den viser ikke hvad der bliver hentet eller sendt desværre. Jeg prøvede at hente noget (220 kB/s) og det jeg fik ud af bytesReceivedPerSec var 866598 hvilket jo ikke har så meget med 220 kB at gøre :(((((( Kender du måske en anden metode ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester