PDA

View Full Version : سوال: نمایش سریال مادربورد در یک TextBox در داخل ویندوز فورم



eslamzadeh
جمعه 02 خرداد 1393, 02:07 صبح
سلام. دوستان و اساتید گرامی خسته نباشید می خواستم بدونم به چه شکلی می تونم سریال مادربورد رو دربیارم و در یک تکست باکس نمایش بدم؟ لطفاً اگر کسی بلد هست کد هاشو قرار بده یا اگر چیزی در این باره میدونه راهنماییم کنه!

aghayex
جمعه 02 خرداد 1393, 09:04 صبح
سرچ می کردید به راحتی بدست می یاوردید :
http://www.codeproject.com/Questions/546385/MotherboardplusSerialplusNumberplusC-plusCodeplu

momimomi
جمعه 02 خرداد 1393, 09:28 صبح
سلام. دوستان و اساتید قرامی خسته نباشید می خواستم بدونم به چه شکلی می تونم سریال مادربورد رو دربیارم و در یک تکست باکس نمایش بدم؟ لطفاً اگر کسی بلد هست کد هاشو قرار بده یا اگر چیزی در این باره میدونه راهنماییم کنه!
سلام دوست تازه وارد:چشمک:
رسم بر این است به نشانه ی قدرشناسی از فردی که به شما پاسخ داده، دکمه تشکر کردن در پایین و سمت راست پست را بفشارید:تشویق:

eslamzadeh
جمعه 02 خرداد 1393, 11:44 صبح
سلام دوست تازه وارد:چشمک:
رسم بر این است به نشانه ی قدرشناسی از فردی که به شما پاسخ داده، دکمه تشکر کردن در پایین و سمت راست پست را بفشارید:تشویق:

سلام. اول اینکه هنوز ندیده بودم شما که کار کشته هستید چرا اسپم میدین؟

eslamzadeh
جمعه 02 خرداد 1393, 11:53 صبح
سرچ می کردید به راحتی بدست می یاوردید :
http://www.codeproject.com/Questions/546385/MotherboardplusSerialplusNumberplusC-plusCodeplu
سلام. مهندس جان قبلاً اینجا رو دیده بودم ولی گویا مشکل داره این کد! نوشته بودن که تو بعضی از کامپیوتر ها کار نمی کنه و یه سوال هم هست اون هم اینه که فقط توی سیستم های 32 بیتی کار می کنه این دستور؟ اگه بخواهیم روی 64 هم کار کنه باید کد رو به صورت زیر ویرایش کنیم؟

using System.Management;
ManagementObjectSearcher MOS = new ManagementObjectSearcher(“Select * From Win64_BaseBoard”);
foreach (ManagementObject getserial in MOS.Get())
{
txtCompanyKey.Text = getserial[“SerialNumber”].ToString();
}

eslamzadeh
یک شنبه 04 خرداد 1393, 11:13 صبح
من این کد رو پیدا کردم ولی ارور هایی رو میده میشه راهنمایی کنید من رو؟


using System.Management;
using System.Io;
public static string SahandSmsGetMotherBoardId()
{
string MBSN = String.Empty;
ManagementSahandSmsScope sahandSmsScope = new ManagementSahandSmsScope("\\\\" + Environment.MachineName + "\\root\\cimv2");
sahandSmsScope.Connect();
ManagementObject sahandSmsManagementObjectWmiClass = new ManagementObject(sahandSmsScope, new ManagementPath("Win32_BaseBoard.Tag=\"Base Board\""), new ObjectGetOptions());
foreach (PropertyData propData in SahandSmsWmiClass.Properties)
{
if (propData.Name == "SerialNumber")
MBSN = String.Format("{0,-25}{1}", propData.Name, Convert.ToString(propData.Value));
}
return MBSN;
}


ارور های زیر رو میده اگر امکانش هست یکی کمکم کنه من تازه وارد هستم تا الان با #C برنامه ننوشتم این اولین برنامه من هستش!

The name 'SahandSmsWmiClass' does not exist in the current context
The type or namespace name'ManagementObject' could not be found(are you missing a using directive or anassembly reference?)
The type or namespace name'ManagementObject' could not be found(are you missing a using directive or anassembly reference?)
The type or namespace name'ManagementPath' could not be found(are you missing a using directive or anassembly reference?)
The type or namespace name'ManagementSahandSmsScope' could not be found(are you missing a using directive or anassembly reference?)
The type or namespace name'ManagementSahandSmsScope' could not be found(are you missing a using directive or anassembly reference?)
The type or namespace name'ObjectGetOptions' could not be found(are you missing a using directive or anassembly reference?)

eslamzadeh
یک شنبه 04 خرداد 1393, 23:45 عصر
توی انجمن به این بزرگی یعنی کسی نیست جواب سوال من رو بده؟ عـــــــــــــــــــجــــ ـــــــــــــب

veniz2008
دوشنبه 05 خرداد 1393, 00:58 صبح
سلام.
بعضی از مادربوردها (بعضی از مدل های گیگابایت که من تست کردم) سریال مادربورد رو در اختیار مخاطب قرار نمی دن و یه رشته خالی رو بر می گردونن (ربطی به 32 بیت یا 64 بیت بودن نداره) اگر این سریال رو برای تولید قفل می خواید می تونید از سریال های cpu و هارد دیسک استفاده کنید.
اما دلیل خطاها یکی بخاطر این هست که اون جایی که کد رو بر داشتید یه کلاس هم وجود داشته که کدش رو بر نداشتید و داخل کدها به اون کلاس اشاره شده که داخل برنامه شما نیست و خطاهای بعدی هم بخاطر اضافه نکردن dll مربوط به System.Managment به پروژه تون هست.
از کد زیر می تونید برای پیدا کردن سریال مادربورد (در صورت امکان) استفاده کنید فقط قبلش این کارها رو انجام بدید :
ابتدا از طریق پنچره Solution Explorer روی پوشه References راست کلیک کنید و از طریق گزینه Add Reference اقدام به اضافه کردن dll مربوط به System.Management کنید و بعد فضای نام :
using System.Management; را به بالای فرمتون اضافه کنید.
119499

حالا کدهای زیر رو قرار بدید (برای بدست آوردن سریال های cpu و هارد دیسک هم با یه دستکاری ساده در همین کد می تونید به مقادیر اونها دسترسی پیدا کنید) :

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
foreach (ManagementObject main in searcher.Get())
{
MessageBox.Show("serial motherboard is :" + main["SerialNumber"].ToString());
}

موفق باشید.

eslamzadeh
دوشنبه 05 خرداد 1393, 12:36 عصر
سلام.
بعضی از مادربوردها (بعضی از مدل های گیگابایت که من تست کردم) سریال مادربورد رو در اختیار مخاطب قرار نمی دن و یه رشته خالی رو بر می گردونن (ربطی به 32 بیت یا 64 بیت بودن نداره) اگر این سریال رو برای تولید قفل می خواید می تونید از سریال های cpu و هارد دیسک استفاده کنید.
اما دلیل خطاها یکی بخاطر این هست که اون جایی که کد رو بر داشتید یه کلاس هم وجود داشته که کدش رو بر نداشتید و داخل کدها به اون کلاس اشاره شده که داخل برنامه شما نیست و خطاهای بعدی هم بخاطر اضافه نکردن dll مربوط به System.Managment به پروژه تون هست.
از کد زیر می تونید برای پیدا کردن سریال مادربورد (در صورت امکان) استفاده کنید فقط قبلش این کارها رو انجام بدید :
ابتدا از طریق پنچره Solution Explorer روی پوشه References راست کلیک کنید و از طریق گزینه Add Reference اقدام به اضافه کردن dll مربوط به System.Management کنید و بعد فضای نام :
using System.Management; را به بالای فرمتون اضافه کنید.
119499

حالا کدهای زیر رو قرار بدید (برای بدست آوردن سریال های cpu و هارد دیسک هم با یه دستکاری ساده در همین کد می تونید به مقادیر اونها دسترسی پیدا کنید) :

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
foreach (ManagementObject main in searcher.Get())
{
MessageBox.Show("serial motherboard is :" + main["SerialNumber"].ToString());
}

موفق باشید.

ممنون من کد رو به شکل زیر عوض کردم ولی مشکل اینجاست که تو تکست باکس هیچ چیزی به جز space نیست!!!


ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
foreach (ManagementObject main in searcher.Get())
{
textBox1.Text = main["SerialNumber"].ToString();
}


مجبور شدم از شماره کد CPU استفاده کنم! آیا امکانش هست که بشه مشکل سریال مادربورد رو حل کرد چون بیشتر آنتی ویروس ها از سریال استفاده می کنند!