PDA

View Full Version : سوال: مشکل در گرفتن نام و شماره سریال هارد (تکراری نیست!)



Morteza_s
دوشنبه 25 آذر 1387, 16:45 عصر
سلام

من با استفاده از این تابع نام و سریال هارد رو بدست آوردم:


Public Shared Function HardID() As String
Dim searcher As ManagementObjectSearcher
Dim query1 As String = "SELECT * FROM Win32_DiskDrive"
Dim query2 As String = "SELECT * FROM Win32_PhysicalMedia"
Dim id As String

searcher = New ManagementObjectSearcher(query1)
For Each wmi_HD As ManagementObject In searcher.Get()
If Not wmi_HD("Model") Is Nothing Then
id = wmi_HD("Model").ToString()
End If
Next
searcher = New ManagementObjectSearcher(query2)
For Each wmi_HD As ManagementObject In searcher.Get()
If Not wmi_HD("SerialNumber") Is Nothing Then
id = id & wmi_HD("SerialNumber").ToString()
End If
Next
Return id
End Function


در حالت عادی مشکلی نداره، اما وقتی یک فلش مموری به سیستم متصل می کنم به جای هارد مشخصات فلش نصب شده رو بر می گردونه

چطور میشه از این مشکل جلوگیری کرد؟

linux
دوشنبه 25 آذر 1387, 20:19 عصر
مشکل کدت این هست که آی دی آخرین هارد یا هر وسیله دیگری را که به عنوان هارد شناخته می شود را بر می گرداند اگر کامپیوتر شما بیش از یک وسیله ذخیره داشته باشد.
کد را طوری تغییر بدهید که آرایه برگرداند

Imports System
Imports System.Management
Imports System.Windows.Forms
Namespace WMISample
Public Class MyWMIQuery
Public Overloads Shared Function Main() As Integer
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_DiskDrive")
For Each queryObj As ManagementObject in searcher.Get()
Console.WriteLine("-----------------------------------")
Console.WriteLine("Win32_DiskDrive instance")
Console.WriteLine("-----------------------------------")
Console.WriteLine("Model: {0}", queryObj("Model"))
Console.WriteLine("PNPDeviceID: {0}", queryObj("PNPDeviceID"))
Next
Catch err As ManagementException
MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
End Try
End Function
End Class
End Namespace

amin_programmer
دوشنبه 25 آذر 1387, 20:30 عصر
سلام کد شما رو اصلاح کردم
این کد نوع دیسک های نصب شده رو هم نشون میده
البته به نظرم بهتر از سریال سی پی یو استفاده بشه
امیدوارم مشکل حل شده باشه

parsehvb
سه شنبه 26 آذر 1387, 10:06 صبح
دوست عزیز بهتر بود نوع سریالی رو که می خواستی مشخص کنی تا جواب کاملتری رو بگیری البته این برنامه هائی رو که گذاشتم چند نوع سریال رو بهت میده