گاهی اوقات به دلایل متعددی شما ممکن است نیاز به دسترسی به اطلاعات سخت افزاری سیستم داشته باشید . یک نمونه که اطلاعات سخت افزاری مورد استفاده قرار می گیرد زمانی هست که شما یک نرم افزار ایجاد کرده اند و می خواهید قفل بر روی نرم افزار قرار بدهید .
ابتدا باید کتابخانه ی
System.Management را به پروژه اضافه کنیم .( برای این کار در پنجره Solution Explorer روی References راست کلیک میکنیم گزینه Add Reference را انتخاب میکنیم .در تب NET . گزینه
برای نوشتن این تکه کد در زبان سی شارپ ابتدا باید using System.Management رو به ابتدای کد اضافه کنیم .
برای بدست آوردن اطلاعات مربوط به سخت افزار شما نیاز به ایجاد یک شی از کلاس ManagementObjectSearcher دارید .
کار این کلاس بازیابی مجموعه ای از اشیا مدیریتی مبتنی بر پرس و جو مشخص است که برای بازیابی اطلاعات مدیریت استفاده میشود .
ManagementObjectSearcher searcher = new ManagementObjectSearcher( "select * from " + Key);
key در کد بالا یک متغیر است که میتواند با داده های مناسب جایگزین شود . مثلا برای بدست آوردن ID پردازنده باید Win32_processor را جایگزین Key کنیم .( لیست کامل Key ها را در ادامه مطلب قرار میدهم .)
سپس نیاز به یک حلقه Foreach داریم که با استفاده از متد GET شی رو با اطلاعات مورد نیازش پر بکنه :
foreach (ManagementObject share in searcher.Get()) { // Some Codes ... }
نمونه کد برای بازیابی ID Processor :
ManagementObjectSearcher mbs = new ManagementObjectSearcher
;("Select * From Win32_processor" )
;""=string cpu
( ()foreach (ManagementObject mo in mbs.Get
}
;() cpu = mo["ProcessorID"].ToString
{
MessageBox.show(Cpu(;
برای نصب Sql Server 2008 R2 بصورت Silent در سیستم 32 بیتی دقیقا باید همان مراحلی که برای سیستم های 64 بیتی انجام میشود را طی کرد یعنی ابتدا Setup.exe را اجرا کرد تا ساخت ConfigurationFile سپس تغییراتی که باید در ConfigurationFile اعمال کرد را انجام داد و سپس ساخت فایل bat و اجرای آن .
تنها تفاوتی که ConfigurationFile در سیستمهای 32 بیتی و 64 بیتی دارند این است که
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" در 32 بیتها وجود ندارد .
برای اینکه تعیین کنیم سیستم 32 یا 64 بیتی است ساده ترین راه این است که یک برنامه ای بنویسیم که بره چک کنه تو درایوری که ویندوز نصب است فولدر (Program File(x86 وجود داره یا نه ؟ اگر چنین فولدری وجود داشت یعنی سیستم 64 بیتی است ولی اگر فقط فولدر Program File وجود داشت یعنی سیستم 32 بیتی است !!!