PDA

View Full Version : سوال: خواندن سریال هارد



majidsoft
دوشنبه 30 شهریور 1388, 16:40 عصر
با سلام
می خواستم بدانم نحوه خواندن سریال هارد دیسک یا سریال درایوی از درایوها چگونه است
با تشکر

saadi2
دوشنبه 30 شهریور 1388, 17:23 عصر
Imports System.Management
PrivateFunction Get_Serial_Hard() AsString
Dim aa AsString = ""
Dim searcher AsNew ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim wmi_HD As ManagementObject
ForEach wmi_HD In searcher.Get
aa = wmi_HD("SerialNumber").ToString
Next
Return aa
EndFunction

majidsoft
دوشنبه 30 شهریور 1388, 17:54 عصر
با تشکر
من با vb.net 2008 کار می کنم اگه لطف کنین کد اصلاح شده را برایم بگذارید کدهایی که برای management نوشتهاید در vb2008 جواب نمی دهد

saadi2
دوشنبه 30 شهریور 1388, 18:53 عصر
فکر نکنم در 2008 تغییری کرده باشه شما در ریفرنس برنامه باید این قسمت را add کنید


System.Management.dll

majidsoft
دوشنبه 30 شهریور 1388, 20:36 عصر
با سلام
اگه ممکنه با این کد یک پروژه بساز و برای من بفرست من تبدیلش می کنم و کد آنرا برات می گذارم

anooshiran
دوشنبه 30 شهریور 1388, 20:37 عصر
Imports System.Management
PrivateFunction Get_Serial_Hard() AsString
Dim aa AsString = ""
Dim searcher AsNew ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim wmi_HD As ManagementObject
ForEach wmi_HD In searcher.Get
aa = wmi_HD("SerialNumber").ToString
Next
Return aa
EndFunction


سلام دوست عزيز

خودت اين كد را چك كرده اي؟ گويا در اجرا با خطا مواجه مي شود.

saadi2
دوشنبه 30 شهریور 1388, 22:15 عصر
شاید ریفرنسی که گفتم add نکردید استاد

mortezamhd
دوشنبه 30 شهریور 1388, 22:26 عصر
من قبلا دنبالش بودم
توی پست های navid asadi یک مثال هست

majidsoft
دوشنبه 30 شهریور 1388, 23:18 عصر
با تشکر از همه دوستان
اون dll رو هم اضافه کردم ولی جواب نداد به هر حال کد درست را برایتان می گذارم

Imports System.Management
Public Class Form1
Dim out As String = ""
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_DiskDrive")
For Each queryObj As ManagementObject In searcher.Get()
Dim a As String = (queryObj("PNPDeviceID"))
If a.Substring(0, 3) <> "USB" Then out = (queryObj("PNPDeviceID")).ToString.ToLower
Next
TextBox2.Text = out.ToString
End Sub
End Class

majidsoft
دوشنبه 30 شهریور 1388, 23:22 عصر
و برای خواندن سریال درایو از این کد استفاده می کنیم
Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String
Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
disk.Get()
Return disk("VolumeSerialNumber").ToString()
End Function

majidsoft
دوشنبه 30 شهریور 1388, 23:24 عصر
و برای خواندن سریال درایو از این کد استفاده می کنیم
Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String
Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
disk.Get()
Return disk("VolumeSerialNumber").ToString()
End Function

saadi2
دوشنبه 30 شهریور 1388, 23:27 عصر
با تشکر از همه دوستان
اون dll رو هم اضافه کردم ولی جواب نداد به هر حال کد درست را برایتان می گذارم

Imports System.Management
Public Class Form1
Dim out As String = ""
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_DiskDrive")
For Each queryObj As ManagementObject In searcher.Get()
Dim a As String = (queryObj("PNPDeviceID"))
If a.Substring(0, 3) <> "USB" Then out = (queryObj("PNPDeviceID")).ToString.ToLower
Next
TextBox2.Text = out.ToString
End Sub
End Class


این برنامه که من گذاشتم برای خودم که خوب کار میکنه
نمیدونم شاید هارد شما sata باشه

از بقیه خواهش میکنم که بگن مه برنامه ای که گذاشتم مشکل داره یا نه؟

majidsoft
دوشنبه 30 شهریور 1388, 23:41 عصر
برنامه شما هنگام اجرا و رسیدن به خط
aa = wmi_HD("SerialNumber").ToString این خطا را نمایش می ده
Object reference not set to an instance of an object.

راستی هارد من sata است

saadi2
دوشنبه 30 شهریور 1388, 23:52 عصر
شاید با هارد ساتا مشکل داره بهتره بقیه دوستانم که تست کردن نتیجه رو بگن من خودمم کدی که شما گذاشتیدو تست میکنم تا به یه مورد کامل و بی نقص برسیم

متشکرم

Navid Asadi
سه شنبه 31 شهریور 1388, 11:14 صبح
دوستان سلام
همون طوری که دوستان گفتن توپست های من یک نمونه هست که سریال هارد و cpu رو بدست میاره...
من خودم اون برنامه رو رو چند تا کامپیوتر که هارد همشون sata بوده امتحان کرم (مشکلی نداشت)
اگه کسی رو پورت IDE امتحان کرده نتیجه رو به ما هم بگه...
تو لینک زیر اون برنامه هست
http://barnamenevis.org/forum/showthread.php?t=177862

Arman_Setayesh
چهارشنبه 01 مهر 1388, 16:34 عصر
ميشه اين برنامه را به سي شارپ هم در اختيار علاقمندان قرار دهيد. مثلا بعد از خوانده شدن سريال هارد ديسك آنرا در يك تكس باكس بريزد.

rika_vazy
پنج شنبه 02 مهر 1388, 11:36 صبح
سلام
من قبلا این برنامه رو از این سایت دانلود کردم خیلی بدردم خورد شماره سریال تمامی قطعات مورد نیازت رو بهت میده

hojjatshariffam
چهارشنبه 29 مهر 1388, 18:06 عصر
اینم کد در آوردن سریال هارد به سی شارپ
البته خیلی ساده و سریع نوشتم . امیدوارم که به درد دوستان بخوره

ضمنا باید تو پروژتون حوزه نام System.Managment رو ادد کنید و سپس ابتدای کدتون Using کندیدش



using System.Management;

بعد در قسمت متدی که لازم دارد سریال اونجا بدست بیاد کد زیر رو بنویسید




ManagementObjectSearcher OBJS = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject OBJ in OBJS .Get())
{
foreach (PropertyData OBJProperty in OBJ.Properties)
if (OBJProperty.Name == "PNPDeviceID")
MessageBox.Show(OBJProperty.Name + " is :" + OBJProperty.Value);

}

توجه کنید که ممکن است تو کامپیوترتون چند تا وسیله IDE یا SATA یا USB مانند هارد و یا USB Flash Disk یا ... داشته باشید که به عنوان DisckDrive شناسائی شوند که در اینصورت سریال همه اونارو براتون تک تک میاره ، میتونید با یه چک کردن ساده و دیدن تفاوت سریال اونها سریال مورد نظرتونو بدست بیارید

توجه :
1- خودتون باید خلاقیت به خرج بدین
2- بعد از بدست اوردن سریال حتما اونو به طرق مختلف رمز یا هش کنید
3- کد های بالا یک الگو برای توسعه می باشد و ممکن است با کاربرد شما همسان نباشد
4- میتونید برای تست ، اگه با MessageBox مشکل داشتید سریال رو تو یه TextBox یا ListBox درج کنید(دیگه خیلی باید مبتدی باشی اگه که این بندو لازم داشته باشی : شوخی)

Javad_raouf
جمعه 10 اردیبهشت 1389, 16:40 عصر
شاید با هارد ساتا مشکل داره بهتره بقیه دوستانم که تست کردن نتیجه رو بگن من خودمم کدی که شما گذاشتیدو تست میکنم تا به یه مورد کامل و بی نقص برسیم

متشکرم
چی شد تست کردین
برای IDE هم جواب میده؟