![]() |
Größe des installierten Arbeitsspeichers ermitteln
Gibt es eine verlässliche Möglichkeit, die Größe des installierten Arbeitsspeichers programmatisch (auf 32- und 64-Bit-Systemen) festzustellen?
Anders als der Name vermuten lässt liefert die API-Funktion GlobalMemoryStatusEx() im Strukturelement "ullTotalPhys: Int64" auf einem 32-Bit Windows 7 mit installierten 4 GB "nur" die maximal nutzbaren 3.5 GB:
Code:
Per WMI könnte man von der Kommandozeile aus die installierten Speicherbänke abfragen:
typedef struct _MEMORYSTATUSEX {
DWORD dwLength; DWORD dwMemoryLoad; DWORDLONG ullTotalPhys; DWORDLONG ullAvailPhys; DWORDLONG ullTotalPageFile; DWORDLONG ullAvailPageFile; DWORDLONG ullTotalVirtual; DWORDLONG ullAvailVirtual; DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
Code:
Ich habe zwar den
WMIC memorychip
Capacity CreationClassName DataWidth Description DeviceLocator 2147483648 Win32_PhysicalMemory 64 Physikalischer Speicher XMM1 2147483648 Win32_PhysicalMemory 64 Physikalischer Speicher XMM3 4194304 Win32_PhysicalMemory 2 Physikalischer Speicher SYSTEM ROM ![]() Gibt es eine API-Funktion, die den physikalisch installierten Arbeitsspeicher ermitteln kann oder vielleicht hat jemand einen Tipp, wie ich das mit dem WMI-Codegenerator bewerkstelligen kann? .sundance. |
AW: Größe des installierten Arbeitsspeichers ermitteln
|
AW: Größe des installierten Arbeitsspeichers ermitteln
Funktioniert perfekt, allerdings erst ab Vista...
Ich bräuchte eine Lösung, die auch auf XP noch funktioniert (sorry, hab ich vergessen anzugeben...) [edit] unter XP funktioniert "WMIC memorychip" allerdings auch nicht. .sundance. |
AW: Größe des installierten Arbeitsspeichers ermitteln
XP wurde doch fast nie mit 4 GB verkauft?
Und wenn dein Programm auch unter XP laufen soll einfach die entsprechenden switch im Programmcode einführen das hier die alte Funktion verwendet wird und ab Vista (SP1) die neue Funktion. |
AW: Größe des installierten Arbeitsspeichers ermitteln
Zitat:
Zitat:
|
AW: Größe des installierten Arbeitsspeichers ermitteln
|
AW: Größe des installierten Arbeitsspeichers ermitteln
Zitat:
|
AW: Größe des installierten Arbeitsspeichers ermitteln
Wenn's ein 32 Bit-XP ist, dann isses auch egal, denn ohne PAE und Co. kann Windows eh nicht mehr als 4 GB verwalten/ansprechen/benutzen.
Wieso sollte es dem Programm dann sagen "nja, theoretisch sind hier 64 GB verbaut, aber nutzen kannst'e dennoch nur 3,5 :tongue:" ? Wenn du den realen RAM wissen willst, dann kommst'e um iene Abfrage der RAM-Riegel wohl nicht drumrum. (das BIOS, Graka und Co. können sich da schließlich auch schon was gemopst haben, bevor Windows da geladen war) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz