# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET >  بدست آوردن شماره سریال هارد دیسک و کارت گرافیک

## iman zadehnoori

با سلام خدمت دوستان 

چطور می تونم تو برنامم شماره سریال هارد دیسک و مثلا کارت گرافیک را بدست بیارم؟ :افسرده:

----------


## Felony

به وسیله WMI میتونید این کار رو انجام بدید .

----------


## alimanam

با سلام




> به وسیله WMI میتونید این کار رو انجام بدید .


روی خیلی از سیستم ها نمیشه با WMI سریال هارد دیسک رو استخراج کرد . :متفکر:

----------


## omid-vbAuto

> با سلام
> 
> 
> 
> روی خیلی از سیستم ها نمیشه با WMI سریال هارد دیسک رو استخراج کرد .


سلام علی جون

اصولا ما چه نیازی به شماره سریال هارد یا CPU و ... داریم؟ از کاربردهاش بگین.
آیا این شماره سریال ها مثل اثر انگشته؟یعنی برای هر کامپیوتر فقط یه سریال بخصوصه؟

----------


## alimanam

سلام امید جان



> اصولا ما چه نیازی به شماره سریال هارد یا CPU و ... داریم؟ از کاربردهاش بگین.


یکی از کاربردهاش اینه که واسه قفل نرم افزاری که میخوای بنویسی یه سریال منحصر به فرد ( مثلاً سریال واقعی هارد دیسک ) از روی سیستم کاربر نهایی برداری و ....




> آیا این شماره سریال ها مثل اثر انگشته؟یعنی برای هر کامپیوتر فقط یه سریال بخصوصه؟


تقریباً جواب شما درسته یعنی اینکه در اکثر مواقع ( 99% ) سریال هارد دیسک یه سریال منحصر به فرد برای هر سیستم هستش و غیرقابل تغییر ( با برخی روش های سخت افزاری میشه اما کار ساده ایی نیست و تقریباً همراه با ریسک خراب شدن هارد دیسک ) موفق باشید .

----------


## Felony

> با سلام
> 
> 
> 
> روی خیلی از سیستم ها نمیشه با WMI سریال هارد دیسک رو استخراج کرد .


 منبعی برای این نظرتون دارید ؟!!!
WMI ابزار مدیریت ویندوز هست ، به شخصه تا به حال مشکلی باهاش نداشتم .

----------


## alimanam

با سلام




> منبعی برای این نظرتون دارید ؟!!!


دوست عزیز منبعی بهتر از تجربه خودم پیدا نکردم !!! سوتفاهم نشه منظورم اینه که خودم روی خیلی از سیستم ها از wmi استفاده کردم روی خیلی ها به هیچ عنوان سریال هارد دیسک رو استخراج نمیکنه فکر کنم مطالب زیادی هم در این سایت گفته شده که متاسفانه فعلاً نمیشه سرچ کرد تا بهتون لینک بدم . موفق باشید .

----------


## Felony

> با سلام
> 
> 
> 
> دوست عزیز منبعی بهتر از تجربه خودم پیدا نکردم !!! سوتفاهم نشه منظورم اینه که خودم روی خیلی از سیستم ها از wmi استفاده کردم روی خیلی ها به هیچ عنوان سریال هارد دیسک رو استخراج نمیکنه فکر کنم مطالب زیادی هم در این سایت گفته شده که متاسفانه فعلاً نمیشه سرچ کرد تا بهتون لینک بدم . موفق باشید .


بعضی از کلاس های WMI خروجی Query ارسالی رو به صورت enum به برنامه ارسال میکنن ، مثلا همون WIN32_PhisycalMedia وقتی ازش سریال هارد رو درخواست میکنید خروجی رو به صورت enum به برنامتون میفرسته چون ممکنه چند تا هارد به سیستم متصل باشه ، به همین دلیل ممکنه خروجی اول Query که به WIN32_PhisycalMedia ارسال کردید خروجی مورد نظرتون نباشه و باید با اون مثل یک enum رفتار کنید و تمام خروجی ها رو بررسی کنید و ازش خروجی مورد نظر رو استخراج کنید .

تنها موردی که ممکنه مشکل ساز بشه این هست که نسخه WMI های سیستم شما با سیستم کاربر یکی نباشه و شما از کلاس یا متدی استفاده کرده باشید که تو WMI سیستم کاربر به دلیل قدیمی بودن نسخه ویندوز تعریف نشده باشه یا تغییر نام داده باشه که خیلی کم همچین مشکلی به وجود میاد .

برنامه ضمیمه رو الان نوشتم ، روی لپ تاپ خودم وقتی SN هارد رو درخواست میکنم تو عنصر سوم enum سریال رو بهم برگشت میده حالا ممکنه تو یه سیستم دیگه تو عنصر اول این کار رو بکنه ، در هر صورت کار میکنه و با یه شرط ساده میشه این مشکل رو برطرف کرد .

----------


## hero4000

دوستان در جايي خوندم اگه کاربر با دسترسي محدود وارد سيستم بشه ( مثلا مهمان ) اونوقت اين روش شماره سريال رو نمي ده ( البته خودم تست نکردم ) مي خواستم ببينم اين قضيه صحت داره ؟

----------


## Felony

> دوستان در جايي خوندم اگه کاربر با دسترسي محدود وارد سيستم بشه ( مثلا مهمان ) اونوقت اين روش شماره سريال رو نمي ده ( البته خودم تست نکردم ) مي خواستم ببينم اين قضيه صحت داره ؟


بستگی داره کاربر مهمان چه دسترسی هایی داشته باشه ، ولی در کل بله این محدودیت برای کاربران با دسترسی پائین وجود داره .

----------


## amir22448

> با سلام خدمت دوستان 
> 
> چطور می تونم تو برنامم شماره سریال هارد دیسک و مثلا کارت گرافیک را بدست بیارم؟


اگه بری تو بخش C#‎ من خودم یه کد نوشتم که شماره ی هارددیسک رو بازیابی می کنه.

----------


## amir22448

> با سلام خدمت دوستان 
> 
> چطور می تونم تو برنامم شماره سریال هارد دیسک و مثلا کارت گرافیک را بدست بیارم؟


برو تو بخش VB.Net یه تاپیک نوشتم که توش یه کدیه که شماره سریال هاردیسک رو پیدا می کنه
https://barnamenevis.org/showthread.p...Vsiual-Basic-6

----------


## hakim22

پیشنهاد من این است که شماره سریال هارد ، cpu  و مادربورد رو باهم استخراج کنید و بعد برای ساختن قفل نرم افزاری ازش استفاده کنید. اینجوری اگر به هر دلیلی یکی در نیومد و بکی دیگه جواب میده. من با استفاده از یک برنامه ای چک کردم و دیدم که در شی wmi جای شماره سریال بعضی از قطعات خالیه و ربطی روبطی به query و روش باز خوانی نداره . ولی شانس اینکه هر سه قطعه با هم اطلاعات پوچ داشته باشند خیلی کمه .

----------


## madmajid

> بعضی از کلاس های WMI خروجی Query ارسالی رو به صورت enum به برنامه ارسال میکنن ، مثلا همون WIN32_PhisycalMedia وقتی ازش سریال هارد رو درخواست میکنید خروجی رو به صورت enum به برنامتون میفرسته چون ممکنه چند تا هارد به سیستم متصل باشه ، به همین دلیل ممکنه خروجی اول Query که به WIN32_PhisycalMedia ارسال کردید خروجی مورد نظرتون نباشه و باید با اون مثل یک enum رفتار کنید و تمام خروجی ها رو بررسی کنید و ازش خروجی مورد نظر رو استخراج کنید .
> 
> تنها موردی که ممکنه مشکل ساز بشه این هست که نسخه WMI های سیستم شما با سیستم کاربر یکی نباشه و شما از کلاس یا متدی استفاده کرده باشید که تو WMI سیستم کاربر به دلیل قدیمی بودن نسخه ویندوز تعریف نشده باشه یا تغییر نام داده باشه که خیلی کم همچین مشکلی به وجود میاد .
> 
> برنامه ضمیمه رو الان نوشتم ، روی لپ تاپ خودم وقتی SN هارد رو درخواست میکنم تو عنصر سوم enum سریال رو بهم برگشت میده حالا ممکنه تو یه سیستم دیگه تو عنصر اول این کار رو بکنه ، در هر صورت کار میکنه و با یه شرط ساده میشه این مشکل رو برطرف کرد .


سلام . میشه لطفا لیست برنامه اونرو اینجا بذارید ؟
واسه ++C Builder می خوام . تشکر .

----------


## Mr.Code

کسی میدونه چه طور میشه هارد سریال رو تغییر داد ؟
یا حداقل دورش زد ؟

----------

