HDSoftware Skrevet 13. mars 2007 Del Skrevet 13. mars 2007 Heisan. Jeg prøver å lese ut serienummer på harddisken og fant på nettet følgende kode: Dim Search As New Management.ManagementObjectSearcher("SELECT * FROM Win32_BIOS") Dim Search2 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem") Dim Search3 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_Processor") Dim Search4 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk") Dim info As Management.ManagementObject For Each info In Search.Get Debug.WriteLine("Serial Number: " & info("serialnumber").ToString) Debug.WriteLine("Manufacturer: " & info("Manufacturer").ToString) Next For Each info In Search2.Get Debug.WriteLine("Model: " & info("Model").ToString) Debug.WriteLine("Computer Name: " & info("Name").ToString) Debug.WriteLine("User Name Loged In: " & info("UserName").ToString) Debug.WriteLine("Total Physical Memory: " & info("TotalPhysicalMemory").ToString & " KB of RAM") Next For Each info In Search3.Get Debug.WriteLine("CPU Clock Speed: " & info("Name").ToString) Next For Each info In Search4.Get Debug.WriteLine("Name: " & info("Name").ToString) Debug.WriteLine("Serial: " & info("ColumeSerialNumber").ToString) Next Alt fungerer helt greit helt frem til for each løkka som skal vise meg disk info. Da bare henger programmet. Noen som vet hvorfor? Ole Lenke til kommentar
aadnk Skrevet 13. mars 2007 Del Skrevet 13. mars 2007 Det er fordi noen av diskene ikke inneholder noe serienummer, som oftest fordi de er eksterne diskstasjoner dedikert til disketter, CD-er eller Zip-disketter og er for øyeblikke tomme. Koden inneholder dessuten en bugg - det skal stå VolumeSerialNumber i siste linje, ikke ColumeSerialNumber: Sub Main() Dim Search As New Management.ManagementObjectSearcher("SELECT * FROM Win32_BIOS") Dim Search2 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem") Dim Search3 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_Processor") Dim Search4 As New Management.ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk") Dim info As Management.ManagementObject, oSerial As Object For Each info In Search.Get Debug.WriteLine("Serial Number: " & info("serialnumber").ToString) Debug.WriteLine("Manufacturer: " & info("Manufacturer").ToString) Next For Each info In Search2.Get Debug.WriteLine("Model: " & info("Model").ToString) Debug.WriteLine("Computer Name: " & info("Name").ToString) Debug.WriteLine("User Name Loged In: " & info("UserName").ToString) Debug.WriteLine("Total Physical Memory: " & info("TotalPhysicalMemory").ToString & " KB of RAM") Next For Each info In Search3.Get Debug.WriteLine("CPU Clock Speed: " & info("Name").ToString) Next For Each info In Search4.Get Debug.WriteLine("Name: " & info("Name").ToString) If IsNotNothing(info("VolumeSerialNumber"), oSerial) Then Debug.WriteLine("Serial: " & oSerial.ToString) End If Next End Sub Public Function IsNotNothing(ByVal ReferenceObject As Object, ByRef ReturnVariable As Object) As Boolean ' Return what we're expecting If ReferenceObject IsNot Nothing Then ReturnVariable = ReferenceObject Return True End If End Function Lenke til kommentar
HDSoftware Skrevet 13. mars 2007 Forfatter Del Skrevet 13. mars 2007 Perfekt! Fungerer akkurat slik jeg ville det. Rart jeg ikke så den..... Takker Ole Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå