Option Explicit On Imports Microsoft.VisualBasic.Devices 'fuer My.Computer AddReference "System.Management" Imports System.Management ' Informationen über die Hardware sammeln und ausgeben ' CPU ' GraKa ' OS ' auch IV-Version ' KraBBy 2024-02 Sub Main() ' Call panic() 'zu kompliziert für mich ' MsgBox(GetInfo("Win32_Processor"), , "Processor") ' MsgBox(GetInfo("Win32_VideoController"), , "VideoController") ' MsgBox(GetInfo("Win32_ComputerSystemProduct"), , "ComputerSystem") Dim s As String, sGraKa As String sGraKa = GetInfo("Win32_VideoController") sGraKa = sGraKa.Replace(vbCrLf, " & ") s = GetInfo("Win32_ComputerSystemProduct") & ", " s &= RAM() & ", " & GetInfo("Win32_Processor") & ", " s &= sGraKa & ", " & OS() s = s.Replace(vbCrLf, "") 'Zeilenumbrueche raus s = s & vbCrLf & "IV " & ThisApplication.SoftwareVersion.DisplayName Logger.Info(s) MsgBox(s) ' MsgBox(GetInfoORG("Win32_ComputerSystem")) 'ginge auch für Hardwarename ' MsgBox(GetInfoORG("Win32_OperatingSystem")) End Sub Function RAM() As String Dim l_RAM As Long = my.computer.info.Totalphysicalmemory 'Bytes l_RAM /= (1024 * 1024 * 1024) 'kB MB GB ' MsgBox(l_RAM, , "RAM in GB") Return l_RAM.ToString() & " GB" End Function Function OS() As String ' MsgBox(My.Computer.Info.OSFullName, , "OSFullName") Return My.Computer.Info.OSFullName End Function Sub panic() 'https://www.codeproject.com/Articles/17973/How-To-Get-Hardware-Information-CPU-ID-MainBoard-I Dim sKey As String = "Win32_Processor" Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("select * from " & sKey) Dim oCol As ManagementObjectCollection = searcher.Get() Dim sResult As String, oManObj As ManagementObject For Each oManObj In oCol ' sResult += oManObj.ToString For Each prop In oManObj.Properties sResult += prop.ToString Next Next MsgBox(sResult) 'hier kam nix richtiges raus, ich kam nicht weiter End Sub Function GetInfo(stringIn As String) As String 'https://www.codeguru.com/visual-basic/obtaining-computer-information-with-visual-basic-net/ ' minimal angepasst ' if hinzu, um nur die Properties "Name" auszugeben Dim sbOutput As New System.Text.StringBuilder(String.Empty) Try Dim mcInfo As New ManagementClass(stringIn) Dim mcInfoCol As ManagementObjectCollection = mcInfo.GetInstances() Dim pdInfo As PropertyDataCollection = mcInfo.Properties For Each objMng As ManagementObject In mcInfoCol For Each prop As PropertyData In pdInfo Try If prop.Name.StartsWith("Name") Then ' sbOutput.AppendLine(prop.Name + ": " + objMng.Properties(prop.Name).Value) 'org sbOutput.AppendLine(objMng.Properties(prop.Name).Value) Else 'nix End If Catch End Try Next ' sbOutput.AppendLine() sbOutput.Append(" ") Next Catch End Try Return sbOutput.ToString().Trim() End Function Function GetInfoORG(stringIn As String) As String 'https://www.codeguru.com/visual-basic/obtaining-computer-information-with-visual-basic-net/ ' (mehr oder minder) der Original-Code Dim sbOutput As New System.Text.StringBuilder(String.Empty) Try Dim mcInfo As New ManagementClass(stringIn) Dim mcInfoCol As ManagementObjectCollection = mcInfo.GetInstances() Dim pdInfo As PropertyDataCollection = mcInfo.Properties For Each objMng As ManagementObject In mcInfoCol For Each prop As PropertyData In pdInfo Try sbOutput.AppendLine(prop.Name + ": " + objMng.Properties(prop.Name).Value) Catch End Try Next sbOutput.AppendLine() Next Catch End Try Return sbOutput.ToString() End Function