WinFuture-Forum.de: C#: Raminformationen Auslesen? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C#: Raminformationen Auslesen?


#1 Mitglied ist offline   lord_fritte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.216
  • Beigetreten: 15. April 05
  • Reputation: 0

geschrieben 17. Februar 2009 - 12:33

Hallo ich möchte gerne mit C# Auslesen wie viel Arbeitspeicher ich haben, wie viel belegt ist und wie viel frei ist.
Google hat mir bisher keine brauchbare Antwort gegeben.
0

Anzeige



#2 Mitglied ist offline   bluefisch200 

  • Gruppe: aktive Mitglieder
  • Beiträge: 718
  • Beigetreten: 28. Januar 07
  • Reputation: 0

geschrieben 17. Februar 2009 - 12:47

Ram Auslesen
using System.Management


ManagementScope oMs = new ManagementScope();
ObjectQuery oQuery = new ObjectQuery("SELECT Capacity FROM Win32_PhysicalMemory");
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs,oQuery);
ManagementObjectCollection oCollection = oSearcher.Get();

int MemSize = 0; 
int mCap = 0;

// In case more than one Memory sticks are installed
foreach( ManagementObject obj in oCollection)
{				
			   mCap = Convert.ToInt32(obj["Capacity"]);
	MemSize += mCap;
}
MemSize = (MemSize/1024)/1024;


WMI Doku auf MSDN
http://msdn.microsof...y/aa389273.aspx

Hoffe es hilft :D
Belegung etc. darfst du noch selbst machen :)

Dieser Beitrag wurde von bluefisch200 bearbeitet: 17. Februar 2009 - 12:49

Laptop: Apple Macbook / Intel Core 2 Duo 2.26 Ghz / 2 GB DDR3 / 250 GB HDD / nVidia 9400GT
Desktop: AMD "Dragon" / Phenom X4 955BE 3.2 Ghz / 8 GB DDR3 / 1 TB HDD + Intel X25 SSD / ATI 4870
Smartphone: SGS / Samsung Hummingbird 1 Ghz / 512 MB RAM / 2 GB Internal + 10 GB SD / SGX540
0

#3 Mitglied ist offline   lord_fritte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.216
  • Beigetreten: 15. April 05
  • Reputation: 0

geschrieben 17. Februar 2009 - 12:58

Ja und wie lese ich aus, wie viel belegt oder frei sind?
den rest kann man ja ausrechnen.

Außerdem ist der Wert der dort rauskommt falsch, Ich habe 4GB mit einem 32-Bit Betriebssystem.
Mit WMI bekome ich 4 GB raus, mit Everest und Sisoft Sandra aber 3,3 GB

Dieser Beitrag wurde von lord_fritte bearbeitet: 17. Februar 2009 - 13:19

0

#4 Mitglied ist offline   bluefisch200 

  • Gruppe: aktive Mitglieder
  • Beiträge: 718
  • Beigetreten: 28. Januar 07
  • Reputation: 0

geschrieben 17. Februar 2009 - 13:20

Freier Speicher in MB

using System.Diagnostics

private int GetFreeMemoryInMB()
		{
			PerformanceCounter freeMem = new PerformanceCounter("Memory", "Available Bytes");
			return Convert.ToInt32(((freeMem.NextValue()/1024)/1024));
		}


Ja liegt daran dass WMI dein wirkliches RAM ausliest, und nicht nur das was adressiert wurde...
Sry ich weis nicht wie man es genau ausliest, kannst höchsten auf 32bit Systemen abfragen ob mehr als 3.25 GB Ram vorhanden sind und in dem Fall sagen dass 3.25GB Ram vorhanden sind...

Dieser Beitrag wurde von bluefisch200 bearbeitet: 17. Februar 2009 - 13:29

Laptop: Apple Macbook / Intel Core 2 Duo 2.26 Ghz / 2 GB DDR3 / 250 GB HDD / nVidia 9400GT
Desktop: AMD "Dragon" / Phenom X4 955BE 3.2 Ghz / 8 GB DDR3 / 1 TB HDD + Intel X25 SSD / ATI 4870
Smartphone: SGS / Samsung Hummingbird 1 Ghz / 512 MB RAM / 2 GB Internal + 10 GB SD / SGX540
0

#5 Mitglied ist offline   lord_fritte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.216
  • Beigetreten: 15. April 05
  • Reputation: 0

geschrieben 17. Februar 2009 - 13:33

Aber dann bringt mir das doch garnichts.. Kann mann icht auch den addressierten Ram auslsen?
Ich habe es auch mal mit dem PerformanceCounter("Memory", "% Committed Bytes In Use"); da kommt aber auch was falsches raus...

EDIT: Aso aber naja das muss doch irgendwie gehen...

Oder kann es sein dass es mit "Pool Paged Bytes" geht.

Dieser Beitrag wurde von lord_fritte bearbeitet: 17. Februar 2009 - 13:35

0

#6 Mitglied ist offline   bluefisch200 

  • Gruppe: aktive Mitglieder
  • Beiträge: 718
  • Beigetreten: 28. Januar 07
  • Reputation: 0

geschrieben 17. Februar 2009 - 13:44

Probier aus aus...ich sitze hier vor einem 2GB 32bit System, kann also ned testen was genau ausgelesen wird...:)
Laptop: Apple Macbook / Intel Core 2 Duo 2.26 Ghz / 2 GB DDR3 / 250 GB HDD / nVidia 9400GT
Desktop: AMD "Dragon" / Phenom X4 955BE 3.2 Ghz / 8 GB DDR3 / 1 TB HDD + Intel X25 SSD / ATI 4870
Smartphone: SGS / Samsung Hummingbird 1 Ghz / 512 MB RAM / 2 GB Internal + 10 GB SD / SGX540
0

#7 Mitglied ist offline   lord_fritte 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.216
  • Beigetreten: 15. April 05
  • Reputation: 0

geschrieben 17. Februar 2009 - 13:50

Hm ne isses leider doch nicht..

EDIT: ich habs ^^

ulong totalMem = new Microsoft.VisualBasic.Devices.ComputerInfo().Total
PhysicalMemory;
ulong freeMem = new Microsoft.VisualBasic.Devices.ComputerInfo().Avail
ablePhysicalMemory;
ulong usingMem = totalMem - freeMem;

Dieser Beitrag wurde von lord_fritte bearbeitet: 17. Februar 2009 - 14:05

0

#8 Mitglied ist offline   christoph_hausner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 68
  • Beigetreten: 23. August 07
  • Reputation: 0

geschrieben 22. Februar 2009 - 13:48

Dafür hab ich mal eine Klasse geschrieben, die das sauber über die WinAPI erledigt. Siehe hier.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0