Wie wär der beste Aufbau (schneller / ressourcenschonender)? So wie hier? Object? Arrays? xyz?
Vor allem wegen immer wieder kehrende Abfragen nach dem aktuellen Stand.
Code: Select all
MsgBox,, GlobalMemoryStatusEx, % "GlobalMemoryStatusEx function /`n"
. "MEMORYSTATUSEX structure`n`n"
. "Lenght:`t`t`t" GlobalMemoryStatusEx(0) "`n`n"
. "MemoryLoad:`t`t" GlobalMemoryStatusEx(1) " %`n`n"
. "TotalPhys:`t`t`t" GlobalMemoryStatusEx(2) " MB`n"
. "AvailPhys:`t`t`t" GlobalMemoryStatusEx(3) " MB`n`n"
. "TotalPageFile:`t`t" GlobalMemoryStatusEx(4) " MB`n"
. "AvailPageFile:`t`t" GlobalMemoryStatusEx(5) " MB`n`n"
. "TotalVirtual:`t`t" GlobalMemoryStatusEx(6) " MB`n"
. "AvailVirtual:`t`t" GlobalMemoryStatusEx(7) " MB`n`n"
. "AvailExtendedVirtual:`t`t" GlobalMemoryStatusEx(8)
GlobalMemoryStatusEx(GMS = 1) {
VarSetCapacity(MEMORYSTATUSEX, 64, 0)
NumPut(64, MEMORYSTATUSEX)
DllCall("GlobalMemoryStatusEx", "Ptr", &MEMORYSTATUSEX)
return, % (GMS = "0") ? NumGet(MEMORYSTATUSEX, 0, "UInt") : (GMS = "1") ? NumGet(MEMORYSTATUSEX, 4, "UInt")
: (GMS = "2") ? NumGet(MEMORYSTATUSEX, 8, "Int64") : (GMS = "3") ? NumGet(MEMORYSTATUSEX, 16, "Int64")
: (GMS = "4") ? NumGet(MEMORYSTATUSEX, 24, "Int64") : (GMS = "5") ? NumGet(MEMORYSTATUSEX, 32, "Int64")
: (GMS = "6") ? NumGet(MEMORYSTATUSEX, 40, "Int64") : (GMS = "7") ? NumGet(MEMORYSTATUSEX, 48, "Int64")
: (GMS = "8") ? NumGet(MEMORYSTATUSEX, 56, "Int64") : "FAIL"
}