Archiv verlassen und diese Seite im Standarddesign anzeigen : VB.NET - Hardware auslesen
Guten Abend,
ich habe vor einige meiner Hardwarekomponetnen über Visual Basic auszulesen.
Mit My.Computer.Info.OsFullName zum Beispiel kann man das Betriebssystem auslesen.
Genau sowas suche ich z.B nur für die Grafikkarte , den Prozessor, das Motherboard u.s.w
Ich bin mir nicht sicher wie man das realisieren kann.
Danke schonmal für eure Hilfe!
MoLow
mittels WMI lassen sich diverse verbaute Hardware Komponenten ermitteln.
z.B:
http://dotnet-snippets.de/dns/wmi-hardware-wrapper-SID312.aspx
Diverse andere Beispiele zu diesem Thema findet man auf einschlägigen Seiten , einfach Google bemühen ;)
MfG
Vielen Dank für die schnelle Antwort.
Diese seite habe ich auch schon gefunden... Aber irgendwie komm ich nicht ganz zurecht damit.
Imports System
Imports System.Management
Public Class Query_SelectQuery
Public Overloads Shared Function _
Main(ByVal args() As String) As Integer
Dim selectQuery As SelectQuery
selectQuery = New SelectQuery("Win32_LogicalDisk")
Dim searcher As ManagementObjectSearcher
searcher = New ManagementObjectSearcher(selectQuery)
Dim disk As ManagementObject
For Each disk In searcher.Get()
Console.WriteLine(disk.ToString())
Next
Console.ReadLine()
Return 0
End Function
Public Enum Win32 As Integer
_Keyboard
_PointingDevice
End Enum
End Class
Wenn ich das zum Beispiel jetzt angebe sollten die genannten Punkte ausgegeben werden... Wie kann ich das machen?
Ich verstehe es leider nicht ganz :(
Danke
MoLow!
Hier mal eine kürzere variante , hab dazu mal schnell eine funktion geschrieben
Funktion:
Private Function Hardware() As String
Dim Devices As Object = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_VideoController")
Dim HardwareName As String
For Each AdaptList In Devices
HardwareName = AdaptList.Description
Next
Return HardwareName
End Function
Aufruf:
Sub Main()
Console.WriteLine(Hardware())
Console.Read()
End Sub
Guteb Abend nochmal,
also ich habs jetzt geschafft...
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Function Hardware() As String
Dim Devices As Object = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_VideoController")
Dim HardwareName As String
For Each AdaptList In Devices
HardwareName = AdaptList.Description
Next
Return HardwareName
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(Hardware)
End Sub
Funktioniert einwandfrei...
Jetzt nur meien Frage kann man das irgendwie so machen das ich mehrere Komponente da einbinden kann...
Jetzt ist ja nur die Grafikkarte da... Wie kann ich zum Beispiel das Motherboard noch hinzufügen ohne den ganzenn sourcecode nochmal zu schreiben?
Den Win32_VideoController austauschen ;)
Bei
Dim Devices As Object = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_VideoController")
Okay, das wusste ich :)
Und wenn ich jetzt zum Beispiel das Prozessor und den Vidoe COntroller haben will?
Also zwei (oder mehrere ausgaben)
Nicht nur Grafikkarte sondern Grafikkart und Prozessor (win32_prozessor)
Das weiß ich nicht genau :(
(http://msdn.microsoft.com/en-us/library/aa394373%28VS.85%29.aspx)
Einfach die Funktion anpassen , und die gewünschte Hardware Info als Parameter übergeben und sich den wert zurück liefern lassen.
Funktion:
Private Function Hardware(ByVal Hardw As String) As String
Dim Devices As Object = GetObject("winmgmts:").ExecQuery(Hardw)
Dim HardwareName As String
For Each AdaptList In Devices
HardwareName = AdaptList.Description
Next
Return HardwareName
End Function
Aufruf:
MsgBox(Hardware("SELECT * FROM Win32_VideoController"))
MsgBox(Hardware("SELECT * FROM Win32_Processor"))
MfG
Oh Perfekt :) Jetzt klappt alles einwandfrei
Vielen Dank für deine Hilfe!
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.