PDA

View Full Version : بدست آوردن سریال سخت افزار سیستم



Yanehsar
شنبه 29 بهمن 1390, 20:44 عصر
سلام دوستان
اول از همه خودم میگم که تایپگم قدیمه خواهشنا حذفش نکنید
جستجو کردم اول بی نتیجه یعنی چیزی نفهمیدم
میخوام سریال سخت افزاری سیستم را در بیارم تا اونجا که من فهمیدم و تو ریجستری دیدم کد سی پی یو را در میارم

82889


اما این کد 8 رقمیه من تو اکثر برنامه ها دیدم که کدهای 20 تا 30 رقمی هستش؟؟این چه کدی هستش؟؟ترکیب چند کد؟؟مد خاصی تو سیستم؟؟
اگر همه میشه آدرس کد قطعاتی مثل هارد،رم ، کارت شبکه رو چطوری میشه بدست آورد؟؟اکه نمونه کد برام بذارید ممنون میشه
82890

Sirwan Afifi
شنبه 29 بهمن 1390, 21:38 عصر
ManagementObjectCollection mblist = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
mblist=mbs.Get();
foreach (ManagementObject mo in mblist)
{
MessageBox.Show(mo["SerialNumber"].ToString());

}

Sirwan Afifi
شنبه 29 بهمن 1390, 21:39 عصر
برای CPU هم فقط کافیه Query رو به این صورت تغییر بدید :

Select * from Win32_processor

Sirwan Afifi
شنبه 29 بهمن 1390, 21:42 عصر
اینجا هم توسط WMI انجام داده :

http://www.codeproject.com/Articles/18268/How-To-Almost-Everything-In-WMI-via-C-Part-3-Hardw

Yanehsar
شنبه 29 بهمن 1390, 22:07 عصر
ManagementObjectCollection mblist = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
mblist=mbs.Get();
foreach (ManagementObject mo in mblist)
{
MessageBox.Show(mo["SerialNumber"].ToString());

}

سلام مرسی اما انجام نمیده برای اجرایی این کدها باید using مخصوصی را فراخوانی کنم؟

Sirwan Afifi
شنبه 29 بهمن 1390, 22:10 عصر
سلام مرسی اما انجام نمیده برای اجرایی این کدها باید using مخصوصی را فراخوانی کنم؟

اول باید System.Management رو Add Refrence کنید بعد Using :

using System.Management;

Yanehsar
شنبه 29 بهمن 1390, 22:27 عصر
برای CPU هم فقط کافیه Query رو به این صورت تغییر بدید :

Select * from Win32_processor

اول از همه تشکر میکنم از کمکتون کدهای اولی یه سری کد و اعداد به من داد اما Query دومی روی مسیج باکس خطا داد.اما یه سوال دارم که این دستور اس کیو الی برای چیه؟؟؟و چه کدهای دیگه ای را میشه به دست اورد مثلا تو عکسی که تو تایپک گذاشتم یه کد 20 تا 30 رقمی نمایش میده اون چطوری به دست میاید؟از ترکیب چند سخت افزار یا شماره خاصی هستش

Sirwan Afifi
شنبه 29 بهمن 1390, 23:19 عصر
برای Query دوم من یادم رفت شما باید ProcessorID رو به جای SerialNumber بنویسید.به این شکل :

MessageBox.Show(mo["ProcessorID"].ToString());

برای تولید این کد 20 رقمی هم می تونید به این روش عمل کنید :

string strMB="", strCPU="";
ManagementObjectCollection mblist = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
mblist=mbs.Get();
foreach (ManagementObject mo in mblist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strMB = mo["SerialNumber"].ToString();
}
ManagementObjectCollection cpulist = null;
ManagementObjectSearcher cpu = new ManagementObjectSearcher("Select * from Win32_Processor");
cpulist = cpu.Get();
foreach (ManagementObject mo in cpulist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strCPU = mo["ProcessorID"].ToString();
}
MessageBox.Show(strMB + " " + strCPU);

Yanehsar
شنبه 29 بهمن 1390, 23:53 عصر
برای Query دوم من یادم رفت شما باید ProcessorID رو به جای SerialNumber بنویسید.به این شکل :

MessageBox.Show(mo["ProcessorID"].ToString());

برای تولید این کد 20 رقمی هم می تونید به این روش عمل کنید :

string strMB="", strCPU="";
ManagementObjectCollection mblist = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
mblist=mbs.Get();
foreach (ManagementObject mo in mblist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strMB = mo["SerialNumber"].ToString();
}
ManagementObjectCollection cpulist = null;
ManagementObjectSearcher cpu = new ManagementObjectSearcher("Select * from Win32_Processor");
cpulist = cpu.Get();
foreach (ManagementObject mo in cpulist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strCPU = mo["ProcessorID"].ToString();
}
MessageBox.Show(strMB + " " + strCPU);


بازم ممنون اما خروجی شامل اعداد و حروف میشه 82897

habibsa
سه شنبه 01 اسفند 1391, 15:28 عصر
بازم ممنون اما خروجی شامل اعداد و حروف میشه 82897
میتونی بوسیله توابع رشته ای حروفشو حذف کنی وفقط اعداد رو نمایش بدی

esafb52
چهارشنبه 02 اسفند 1391, 10:58 صبح
سلام میشه بگین چطور از این استفاده کنم و چطور پس از مقایسه اگه کد فعال سازی صحیح بود دیگه فرم فعال سازی رو نشون نده

danialafshari
چهارشنبه 02 اسفند 1391, 11:08 صبح
سلام میشه بگین چطور از این استفاده کنم و چطور پس از مقایسه اگه کد فعال سازی صحیح بود دیگه فرم فعال سازی رو نشون نده

باید بعد از ترکیب شناسه سیستم و ID محصول یک کد فعال سازی قرار داده میشه و اونو در مثلا رجیستری ثبت می کنید
بعد در Program.cs چک میکنید اگر مسیر و اطلاعات درست بودند مستقیم میره سر فرم اصلی و دیگه فرم Login نمایش داده نمیشه

esafb52
چهارشنبه 02 اسفند 1391, 11:15 صبح
ممنون از جوابتون ولی چطور تو ریجستری چنین کاری رو انجام بدم من مبتدی هستم میشه یه راهنمایی یا نمونه ساده کد بذارین؟؟!!!

danialafshari
چهارشنبه 02 اسفند 1391, 16:31 عصر
سلام
بله بفرمائید :
لینک 1 (http://barnamenevis.org/showthread.php?258575-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D9%86%D8%AD%D9%88%D9%87-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1%DB%8C-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-(-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C))
لینک 2 (http://ehsanavr.com/1389/07/10/%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%B1%D8%AC%DB%8C%D8%B3%D8%AA%D8%B1%DB%8C-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-%D8%A8%D9%87/)

aradrobo
جمعه 04 اسفند 1391, 10:55 صبح
سلام دوستان
اول از همه خودم میگم که تایپگم قدیمه خواهشنا حذفش نکنید
جستجو کردم اول بی نتیجه یعنی چیزی نفهمیدم
میخوام سریال سخت افزاری سیستم را در بیارم تا اونجا که من فهمیدم و تو ریجستری دیدم کد سی پی یو را در میارم

82889


اما این کد 8 رقمیه من تو اکثر برنامه ها دیدم که کدهای 20 تا 30 رقمی هستش؟؟این چه کدی هستش؟؟ترکیب چند کد؟؟مد خاصی تو سیستم؟؟
اگر همه میشه آدرس کد قطعاتی مثل هارد،رم ، کارت شبکه رو چطوری میشه بدست آورد؟؟اکه نمونه کد برام بذارید ممنون میشه
82890




کدهای 20 - 30 رقمی مخصوص هارد هستش . ولی از همین کد 8 رقمی هم می تونی استفاده کنی . یعنی بیای این کد رو در یک معادله قرار بدی تا به عدد بزرگتری تبدیل بشه .

aradrobo
جمعه 04 اسفند 1391, 11:04 صبح
// سریال نامبر هارد را نمایش می دهد
ManagementObjectSearcher Disk = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '" + HDDModel.Text + "'");
foreach (ManagementObject moDisk in Disk.Get())
{
SNHDD.Text = moDisk["SerialNumber"].ToString();
}

aradrobo
جمعه 04 اسفند 1391, 11:05 صبح
//اعداد را از حروف تفکیک می کند
string s = SNHDD.Text;
StringBuilder alph = new StringBuilder();
StringBuilder num = new StringBuilder();
foreach (char c in s)
if (char.IsDigit(c))
num.Append(c);
else
alph.Append(c);

// txtCode.Text = alph.ToString();
txtCode.Text = num.ToString();

// این کد باعث می شود که فقط 8 رقم بعد از 20 کاراکتر را بخواند
txtCode.Text = txtCode.Text.Substring(20, 8);

ali_habibi1384
جمعه 04 اسفند 1391, 14:43 عصر
فايل dll رو از لينك زير دانلود كنيد و براحتي شماره سريالهايي رو كه لازم داريد ازش بگيريد. اين ابزار رو من دقيقا واسه همين قفل نرم افزاري ساخته بودم.