Wie Grafikkarten Speicher ermitteln ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Wie Grafikkarten Speicher ermitteln ?

Beitrag von al90 »

Hi,

Wie der Titel schon sagt suche ich nach einer lösung die Größe des Arbeitsspeichers zu ermitteln.
In der Registry bin ich leider nicht fündig geworden. Bin für jeden Tipp Dankbar :allright:

Ciao
AL90
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von ccode_new »

Hallo!

Versuche das hier mal:
Windows-Version:

Code: Alles auswählen

; wmic PATH win32_videocontroller GET description
; wmic PATH win32_videocontroller GET adapterram
; wmic PATH win32_videocontroller GET driverversion
; wmic PATH win32_videocontroller GET pnpdeviceid

Define.i GPUInfo
GPUInfo = RunProgram("wmic", "PATH win32_VideoController GET adapterram", "", #PB_Program_Open | #PB_Program_Read)
Output$ = ""
If GPUInfo
  While ProgramRunning(GPUInfo)
    If AvailableProgramOutput(GPUInfo)
      Output$ + ReadProgramString(GPUInfo, #PB_Unicode) + Chr(13)
    EndIf
  Wend
  Output$ + Chr(13) + Chr(13)
  Output$ + "Exitcode: " + Str(ProgramExitCode(GPUInfo))
  
  CloseProgram(GPUInfo)
EndIf

;VRAM in Mb
Debug StringField(Output$, 1, Chr(13))
Debug (Val(StringField(Output$, 2, Chr(13))) / 1024)/1024
Anbei:
Unter MacOs könnte man das hier probieren:
RunProgram("system_profiler", "SPDisplaysDataType", "", #PB_Program_Open | #PB_Program_Read)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von STARGÅTE »

Hm, zunächst erhalte ich nur Müll. Mit ReadProgramString(GPUInfo, #PB_Ascii) statt #PB_Unicode erhalte ich zumindest eine Ausgabe, diese ist jedoch nicht richtig:
AdapterRAM
4095
Meine Grafikkarte hat 6 GB.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von ccode_new »

Hallo STARGÅTE,

die Ausgabe von "wmic" scheint nicht zuverlässig genug zu sein.

Ich erhalte mit #PB_Ascii und #PB_UTF8 nur Müll, mit #PB_Unicode bekomme ich die korrekte Ausgabe.

Bei einer internen Intel-Chip - Grafikkarte stimmt die VRAM Angabe absolut genau.

Für Nvidia oder ATI werden glaube ich weite Plugins benötigt, oder es geht nur über spezielle Treiber.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von Kiffi »

Hier gibt's Code zum Ausprobieren: WMI Queries for Hardware
Note: Win32_VideoController's UInt32 property AdapterRAM cannot return values exceeding 4GB.
Hygge
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von al90 »

@Kiffi

Jauw, Super das funktioniert. Danke Dir :allright:
Ich musste aber auch die Konstante auf #pb_AscII setzen, ansonsten wurden nur Hieroglyphen angezeigt.
Aber ansonsten klappt es sehr gut auf meinen MiniPC. CPU+GPU in einem. Zeigt mir 512 MB an. Also genu so
wie ich es auch erwartet habe. <)
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von al90 »

Ich bin gerade dabei ein SysInfoPanel mit einer übersicht für mein aktuelles Project zusammenzustellen.
Für das meiste wurde ich im Inet auch fündig. Nur für den GraKa RAM konnte ich da nichts finden.
Ich poste mal hier den Code. Sicherlich können andere das evtl. auch gebrauchen. Der Kerncode ist
natürlich noch nicht fertig. Kann bestimmt noch einiges verbessert/geändert werden. Aber insoweit
Funktioniert es schonmal soweit. :wink:

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,"SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000","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, 56, "GPU")
      Text_8 = TextGadget(#PB_Any, 36, 268, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
      Frame_3 = FrameGadget(#PB_Any, 21, 317, 551, 124, "Arbeitsspeicher (Physikalisch)")
      Text_9 = TextGadget(#PB_Any, 36, 335, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
      Text_10 = TextGadget(#PB_Any, 36, 362, 522, 25, "", #PB_Text_Border|#PB_Text_Center)
      Text_11 = TextGadget(#PB_Any, 36, 389, 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)
      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")
    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()
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von ccode_new »

Könnt ihr das hier:

Code: Alles auswählen

;Tested under Windows 11 -Version 21H2 (Build 22000.675)

Define.i GPUInfo
GPUInfo = RunProgram("reg", "query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001 /v HardwareInformation.qwMemorySize", "", #PB_Program_Open | #PB_Program_Read)
Output$ = ""
If GPUInfo
  While ProgramRunning(GPUInfo)
    If AvailableProgramOutput(GPUInfo)
      Output$ + ReadProgramString(GPUInfo, #PB_Ascii) + Chr(13)
    EndIf
  Wend
  Output$ + Chr(13) + Chr(13)
  Output$ + "Exitcode: " + Str(ProgramExitCode(GPUInfo))
  
  CloseProgram(GPUInfo)
EndIf

;Debug Output$
field$ = StringField(Output$, 3, Chr(13))
field2$ = StringField(field$, 13, Chr(32))

VMem.q =  Val("$"+RemoveString(field2$, "0x"))

;VRam in Mb
Debug ((VMem / 1024) / 1024)
mal testen?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von STARGÅTE »

Ergibt bei mir 0 mit dem Exitcode 1
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Wie Grafikkarten Speicher ermitteln ?

Beitrag von TroaX »

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

Str(Val(ReadRegKey(#HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000","HardwareInformation.qwMemorySize",0))/1024/1024/1024)
Hier dein Sysinfo:

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()
Viel Spaß damit ;)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Antworten