با سلام خدمت دوستان
چطور می تونم تو برنامم شماره سریال هارد دیسک و مثلا کارت گرافیک را بدست بیارم؟
با سلام خدمت دوستان
چطور می تونم تو برنامم شماره سریال هارد دیسک و مثلا کارت گرافیک را بدست بیارم؟
به وسیله WMI میتونید این کار رو انجام بدید .
با سلام
روی خیلی از سیستم ها نمیشه با WMI سریال هارد دیسک رو استخراج کرد .به وسیله WMI میتونید این کار رو انجام بدید .
سلام امید جان
یکی از کاربردهاش اینه که واسه قفل نرم افزاری که میخوای بنویسی یه سریال منحصر به فرد ( مثلاً سریال واقعی هارد دیسک ) از روی سیستم کاربر نهایی برداری و ....اصولا ما چه نیازی به شماره سریال هارد یا CPU و ... داریم؟ از کاربردهاش بگین.
تقریباً جواب شما درسته یعنی اینکه در اکثر مواقع ( 99% ) سریال هارد دیسک یه سریال منحصر به فرد برای هر سیستم هستش و غیرقابل تغییر ( با برخی روش های سخت افزاری میشه اما کار ساده ایی نیست و تقریباً همراه با ریسک خراب شدن هارد دیسک ) موفق باشید .آیا این شماره سریال ها مثل اثر انگشته؟یعنی برای هر کامپیوتر فقط یه سریال بخصوصه؟
با سلام
دوست عزیز منبعی بهتر از تجربه خودم پیدا نکردم !!! سوتفاهم نشه منظورم اینه که خودم روی خیلی از سیستم ها از wmi استفاده کردم روی خیلی ها به هیچ عنوان سریال هارد دیسک رو استخراج نمیکنه فکر کنم مطالب زیادی هم در این سایت گفته شده که متاسفانه فعلاً نمیشه سرچ کرد تا بهتون لینک بدم . موفق باشید .منبعی برای این نظرتون دارید ؟!!!
بعضی از کلاس های WMI خروجی Query ارسالی رو به صورت enum به برنامه ارسال میکنن ، مثلا همون WIN32_PhisycalMedia وقتی ازش سریال هارد رو درخواست میکنید خروجی رو به صورت enum به برنامتون میفرسته چون ممکنه چند تا هارد به سیستم متصل باشه ، به همین دلیل ممکنه خروجی اول Query که به WIN32_PhisycalMedia ارسال کردید خروجی مورد نظرتون نباشه و باید با اون مثل یک enum رفتار کنید و تمام خروجی ها رو بررسی کنید و ازش خروجی مورد نظر رو استخراج کنید .
تنها موردی که ممکنه مشکل ساز بشه این هست که نسخه WMI های سیستم شما با سیستم کاربر یکی نباشه و شما از کلاس یا متدی استفاده کرده باشید که تو WMI سیستم کاربر به دلیل قدیمی بودن نسخه ویندوز تعریف نشده باشه یا تغییر نام داده باشه که خیلی کم همچین مشکلی به وجود میاد .
برنامه ضمیمه رو الان نوشتم ، روی لپ تاپ خودم وقتی SN هارد رو درخواست میکنم تو عنصر سوم enum سریال رو بهم برگشت میده حالا ممکنه تو یه سیستم دیگه تو عنصر اول این کار رو بکنه ، در هر صورت کار میکنه و با یه شرط ساده میشه این مشکل رو برطرف کرد .
دوستان در جايي خوندم اگه کاربر با دسترسي محدود وارد سيستم بشه ( مثلا مهمان ) اونوقت اين روش شماره سريال رو نمي ده ( البته خودم تست نکردم ) مي خواستم ببينم اين قضيه صحت داره ؟
برو تو بخش VB.Net یه تاپیک نوشتم که توش یه کدیه که شماره سریال هاردیسک رو پیدا می کنه
https://barnamenevis.org/showthread.p...Vsiual-Basic-6
پیشنهاد من این است که شماره سریال هارد ، cpu و مادربورد رو باهم استخراج کنید و بعد برای ساختن قفل نرم افزاری ازش استفاده کنید. اینجوری اگر به هر دلیلی یکی در نیومد و بکی دیگه جواب میده. من با استفاده از یک برنامه ای چک کردم و دیدم که در شی wmi جای شماره سریال بعضی از قطعات خالیه و ربطی روبطی به query و روش باز خوانی نداره . ولی شانس اینکه هر سه قطعه با هم اطلاعات پوچ داشته باشند خیلی کمه .
کسی میدونه چه طور میشه هارد سریال رو تغییر داد ؟
یا حداقل دورش زد ؟