Versuch es mal so (etwas lang, weil ich jetzt keine Zeit hatte, eine ReadRegKeyInt) zu bauen. Da kommen bei mir 8 GB raus (3060 TI mit 8 GB):
Code: Alles auswählen
Procedure.s ReadRegKey(OpenKey.i,SubKey.s,ValueName.s,Type.i=1)
hKey.i=0
DataSize.i=255
keyvalue$=""
mem=AllocateMemory(1024)
If mem
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue$="Error"
Else
If RegQueryValueEx_(hKey,ValueName,0,0,mem,@DataSize)
keyvalue$="Error"
Else
If Type=0
keyvalue$=Str(PeekI(mem))
ElseIf Type=1
keyvalue$=PeekS(mem)
EndIf
EndIf
RegCloseKey_(hKey)
EndIf
FreeMemory(mem)
EndIf
ProcedureReturn keyvalue$
EndProcedure
Procedure.s GetComputerName()
a$=ComputerName()
ProcedureReturn a$
EndProcedure
Procedure.s GetProcessorName()
a$=CPUName()
ProcedureReturn a$
EndProcedure
Procedure.s GetProcessorSpeed()
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"HARDWARE\DESCRIPTION\System\CentralProcessor\0","~MHz",0)
If a$=""
a$="<Unbekannt>"
EndIf
ProcedureReturn a$
EndProcedure
Procedure.s CountProcessorCores()
x=CountCPUs()
ProcedureReturn Str(x)
EndProcedure
Procedure.s GetProcessorArchitecture()
a$=GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
If a$=""
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","PROCESSOR_ARCHITECTURE")
EndIf
If a$=""
a$="<Unbekannt>"
EndIf
ProcedureReturn a$
EndProcedure
Procedure.s GetProcessorIdentifier()
a$=GetEnvironmentVariable("PROCESSOR_IDENTIFIER")
If a$=""
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","PROCESSOR_IDENTIFIER")
EndIf
If a$=""
a$="<Unbekannt>"
EndIf
ProcedureReturn a$
EndProcedure
Procedure.s GetProcessorLevel()
a$=GetEnvironmentVariable("PROCESSOR_LEVEL")
If a$=""
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","PROCESSOR_LEVEL")
EndIf
If a$=""
a$="<Unbekannt>"
EndIf
ProcedureReturn a$
EndProcedure
Procedure.s GetProcessorRevision()
a$=GetEnvironmentVariable("PROCESSOR_REVISION")
If a$=""
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","PROCESSOR_REVISION")
EndIf
If a$=""
a$="<Unbekannt>"
EndIf
ProcedureReturn a$
EndProcedure
Procedure.s GetGraphicCardName()
Protected device.DISPLAY_DEVICE
Protected settings.DEVMODE
device\cb = SizeOf(DISPLAY_DEVICE)
settings\dmSize = SizeOf(DEVMODE)
EnumDisplayDevices_(#Null,#Null,device,#Null)
a$=PeekS(@device\DeviceString)
If a$=""
a$=ReadRegKey(#HKEY_LOCAL_MACHINE,"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001","DriverDesc")
If a$=""
a$="<Unbekannt>"
EndIf
EndIf
ProcedureReturn a$
EndProcedure
Procedure.i GetTotalInstalledMemory()
Protected Info.MEMORYSTATUS
Info\dwLength = SizeOf(MEMORYSTATUS)
GlobalMemoryStatus_(@Info)
ProcedureReturn Info\dwTotalPhys
EndProcedure
Procedure.i GetTotalFreeMemory()
Protected Info.MEMORYSTATUS
Info\dwLength = SizeOf(MEMORYSTATUS)
GlobalMemoryStatus_(@Info)
ProcedureReturn Info\dwAvailPhys
EndProcedure
Procedure.i GetTotalUsedMemory()
Protected Info.MEMORYSTATUS
Info\dwLength = SizeOf(MEMORYSTATUS)
GlobalMemoryStatus_(@Info)
ProcedureReturn Info\dwTotalPhys-Info\dwAvailPhys
EndProcedure
Procedure Show_SystemInformations()
a$=GetComputerName()
Window_0 = OpenWindow(#PB_Any, 420, 134, 640, 551, "Syseminformationen für "+a$, #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
If Window_0
fnt=LoadFont(#PB_Any,"verdana",10,#PB_Font_HighQuality)
SetGadgetFont(#PB_Default,FontID(fnt))
Button_1 = ButtonGadget(#PB_Any, 503, 508, 116, 30, "Schließen")
Container_0 = ContainerGadget(#PB_Any, 21, 19, 598, 477, #PB_Container_Raised)
Frame_1 = FrameGadget(#PB_Any, 21, 23, 551, 216, "CPU")
Text_1 = TextGadget(#PB_Any, 36, 41, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_2 = TextGadget(#PB_Any, 36, 68, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_3 = TextGadget(#PB_Any, 36, 95, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_4 = TextGadget(#PB_Any, 36, 122, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_5 = TextGadget(#PB_Any, 36, 149, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_6 = TextGadget(#PB_Any, 36, 176, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_7 = TextGadget(#PB_Any, 36, 203, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Frame_2 = FrameGadget(#PB_Any, 21, 250, 551, 78, "GPU")
Text_8 = TextGadget(#PB_Any, 36, 268, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_12 = TextGadget(#PB_Any, 36, 295, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Frame_3 = FrameGadget(#PB_Any, 21, 344, 551, 108, "Arbeitsspeicher (Physikalisch)")
Text_9 = TextGadget(#PB_Any, 36, 362, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_10 = TextGadget(#PB_Any, 36, 389, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
Text_11 = TextGadget(#PB_Any, 36, 416, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
SetGadgetColor(Text_1, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_2, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_3, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_4, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_5, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_6, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_7, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_8, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_9, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_10, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_11, #PB_Gadget_BackColor, $cccccc)
SetGadgetColor(Text_12, #PB_Gadget_BackColor, $cccccc)
SetGadgetText(Text_1, GetProcessorName())
SetGadgetText(Text_2, GetProcessorSpeed()+" Mhz")
SetGadgetText(Text_3, CountProcessorCores()+" Cores")
SetGadgetText(Text_4, "Architecture: "+GetProcessorArchitecture())
SetGadgetText(Text_5, "Revision: "+GetProcessorRevision())
SetGadgetText(Text_6, "Identifier: "+GetProcessorIdentifier())
SetGadgetText(Text_7, "Level: "+GetProcessorLevel())
SetGadgetText(Text_8, GetGraphicCardName())
x=GetTotalInstalledMemory()/1024/1024/1024
If (x/2)*2<>x : x+1 : EndIf
SetGadgetText(Text_9, "Gesamtspeicher: "+Str(x)+" GB")
x=GetTotalFreeMemory()/1024/1024/1024
SetGadgetText(Text_10, "Freier Speicher: "+Str(x)+" GB")
x=GetTotalUsedMemory()/1024/1024/1024
SetGadgetText(Text_11, "Belegter Speicher: "+Str(x)+" GB")
SetGadgetText(Text_12, Str(Val(ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000","HardwareInformation.qwMemorySize",0))/1024/1024/1024) +" GB Video-Memory")
CloseGadgetList()
EndIf
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_Gadget
gad=EventGadget()
Else
gad=0
EndIf
If gad=Button_1
Break
EndIf
Until Event=#PB_Event_CloseWindow
EndProcedure
Show_SystemInformations()