HOME WORKSHOPS BEFEHLSREFERENZ API-REFERENZ FAQ FORUM DOWNLOAD TOOLBESPRECHUNG BÜCHERECKE MARKETPLACE GRAFIK & DESIGN VB-SEITEN
[1052 User online] |
Als Grundlage für die Ermittlung von Computertypen dient eine Enumeration von Microsoft. Ich übermittle die deutsche Version: Public Enum ChassisTypesGER Sonstiges Unbekannt Desktop Low_Profile_Desktop Pizza_Box Mini_Tower Turm Tragbar Laptop Notebook Hand_gehalten Docking_Station All_in_One Sub_Notebook Platzsparend Lunchbox Hauptsystemgehäuse Erweiterungsgehäuse SubChassis Buserweiterungsgehäuse Peripheriegehäuse Speichergehäuse Rackmontagechassis PC_mit_versiegeltem_Gehäuse Tablette Cabriolet Abtrennbar End Enum Hier die Funktion: ''' <summary> ''' Ermitteln des Computertyps via Powershell ''' </summary> Public Function getComputerTyp() As String Dim Names() As String = [Enum].GetNames(GetType(ChassisTypesGER)) Dim psi As New ProcessStartInfo(), ctStr As String With psi .FileName = "powershell.exe" .Arguments = "Get-CimInstance -ClassName Win32_SystemEnclosure | Select-Object ChassisTypes" .UseShellExecute = False .RedirectStandardOutput = True .RedirectStandardError = True .CreateNoWindow = True ' Fenster unsichtbar halten End With Dim output As New StringBuilder() Dim p As New Process() p.StartInfo = psi p.Start() ' Ausgabe lesen output.AppendLine(p.StandardOutput.ReadToEnd()) ctStr = output.ToString ctStr = getStringBetweenStrings(ctStr, "{", "}", True) ctStr = Names(CInt(ctStr - 1)) p.WaitForExit() Return ctStr End Function und Hilfsfunktion: Public theLastIdx As Integer = 0, thelastIdxL As Integer = 0, thenextIdx As Integer = 0 ''' <summary> ''' String zwischen zwei Strings ''' </summary> ''' <param name="str">der Quell-String</param> ''' <param name="str1">der 1. Begrenzungs-String</param> ''' <param name="str2">der 2. Begrenzungs-String</param> ''' <param name="aFlag">True.. Rückgabe des gesuchten Strings, ''' False.. dito, plus Begrenzungen</param> ''' <param name="fromPos">die Anfangsposition des Suchens</param> ''' <returns></returns> Public Function getStringBetweenStrings(str As String, str1 As String, str2 As String, Optional aFlag As Boolean = False, Optional fromPos As Short = 0) As String Dim st As String, thelastIdx As Short If aFlag Then ' einkürzen um str1 und str2 If str.IndexOf(str1) < 0 Then Return "" st = str.Substring(str.IndexOf(str1) + str1.Length, str.IndexOf(str2) - str.IndexOf(str1) - str1.Length) Return st Else If thelastIdx = 0 Then thelastIdx = str.IndexOf(str1) If thelastIdx < 0 Then Return "" If str.IndexOf(str1, thelastIdx) < 0 Then Return "" st = str.Substring(thelastIdx, str.IndexOf(str2, thelastIdx) - thelastIdx + str2.Length) thelastIdx = str.IndexOf(str2, thelastIdx) + str2.Length Return st End If End Function Und der einfache Aufruf: Dim nameTyp As String = getComputertyp() Dieser Tipp wurde bereits 14 mal aufgerufen.
Anzeige
![]() ![]() ![]() Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats ![]() Matthias Kozlowski Umlaute konvertieren Ersetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevEingabe 3.0 ![]() Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
|||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |