PDA

View Full Version : موضوع تکراری شناسه سخت افزاری



samiasoft
شنبه 12 فروردین 1396, 19:17 عصر
سلام دوستان

میدونم در این باره خیلی بحث شده اما کدهایی که من داخل این سایت بدست اوردم بیشترشون با wmi هستش و خیلیا میگن که تو هرسیستمی این جواب نمیده چون ممکنه این سرویس داخل ویندوز مربوطه غیرفعال باشه.

برای مثال شماره سریال cpu
Dim cpuInfo As String = String.Empty Dim mgmt As New ManagementClass("Win32_Processor")
Dim objCol As ManagementObjectCollection = mgmt.GetInstances()
For Each obj As ManagementObject In objCol
If cpuInfo = String.Empty Then
TextBox3.Text = obj.Properties("ProcessorId").Value.ToString()
End If
Next
Return cpuInfo

شماره سریال هارد دیسک

Dim searcher As ManagementObjectSearcher Dim query1 As String = "SELECT * FROM Win32_DiskDrive"
Dim query2 As String = "SELECT * FROM Win32_PhysicalMedia"


searcher = New ManagementObjectSearcher(query1)
For Each wmi_HD As ManagementObject In searcher.Get()
If wmi_HD("Model") IsNot Nothing Then




TextBox1.Text = wmi_HD("Model").ToString()


End If
Next wmi_HD


searcher = New ManagementObjectSearcher(query2)
For Each wmi_HD As ManagementObject In searcher.Get()
If wmi_HD("SerialNumber") IsNot Nothing Then

TextBox2.Text = wmi_HD("SerialNumber").ToString()
End If
Next wmi_HD

با شماره سریال هارد در این کد من بارها به مشکل برخوردم و در ویندوز xp موقعی که فلش مموری به usb وصل باشه دیگر شماره سریال هارد رو نمایش نمیده.

با استفاده از توابع دیگری تونستید شماره سریال cpu یا هارد بدست آورید ؟ ممنون میشوم کدهاشو به اشتراک بزارین.

mahdi.m.sh
دوشنبه 28 فروردین 1396, 17:29 عصر
سلام
از تابع زیر می تونی شماره سریال CPU رو به دست بیاری

Private Function CpuId() As String
Dim computer As String = "."
Dim wmi As Object = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
computer & "\root\cimv2")
Dim processors As Object = wmi.ExecQuery("Select * from Win32_Processor")

Dim cpu_ids As String = ""
For Each cpu As Object In processors
cpu_ids = cpu_ids & ", " & cpu.ProcessorId
Next cpu
If cpu_ids.Length > 0 Then cpu_ids = cpu_ids.Substring(2)

Return cpu_ids
End Function


و میتونید مقدار تابع رو داخل هر چی خواستید دریافت کنید

مثلاً


TextBox1.Text = CpuId()

336699
یک شنبه 17 اردیبهشت 1396, 15:43 عصر
من هم این مشکل رو داشتم تا بالاخره یافتم :لبخند:

این رو تست کن

روی ویندوز 10 و 8 و 7 درست کارمیکنه

به احتمال زیاد روی xp هم جواب میده

samiasoft
یک شنبه 17 اردیبهشت 1396, 22:50 عصر
من هم این مشکل رو داشتم تا بالاخره یافتم :لبخند:

این رو تست کن

روی ویندوز 10 و 8 و 7 درست کارمیکنه

به احتمال زیاد روی xp هم جواب میده

سورسشو قرار میدید بررسی کنم؟

در ویندوز xp جواب نداد !

omid1783
یک شنبه 09 مهر 1396, 18:17 عصر
من هم این مشکل رو داشتم تا بالاخره یافتم :لبخند:

این رو تست کن

روی ویندوز 10 و 8 و 7 درست کارمیکنه

به احتمال زیاد روی xp هم جواب میده



سلام
چه کدی؟ میشه لطف کنید و سورس رو قرار بدین؟ ممنون میشم

samiasoft
یک شنبه 09 مهر 1396, 18:59 عصر
سلام
چه کدی؟ میشه لطف کنید و سورس رو قرار بدین؟ ممنون میشم

در این پست قرار دادم تست شده در کلیه ویندوزها

http://barnamenevis.org/showthread.php?542451-%D9%85%DA%A9-%D8%A2%D8%AF%D8%B1%D8%B3-%DA%A9%D8%A7%D8%B1%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D8%9F&p=2377685&viewfull=1#post2377685