PDA

View Full Version : مشکل در استفاده از فایل HWInfo.ocx برای بدست آوردن سریال مادربرد و پردازنده



Sahand87
چهارشنبه 24 فروردین 1390, 02:20 صبح
فایل HWInfo.ocx را از همین سایت دریافت کردم متاسفانه وقتی از این ocx استفاده می کنم در مورد مشخصات سیستم اول درست عمل می کند ولی سیستم های بعدی را با همان مشخصات سیستم اول ارائه میدهد مثل اینکه مشخصات سیستم اول را ذخیره سازی میکند و برای سیستم های بعدی همان موارد ذخیره شده را ارائه میدهد خواهشمندم دوستانی که تجربیاتی با این ocx دارند لطف کرده و من را راهنمایی کنند.

البته توی بعضی از تاپیک ها دوستان اعلام کرده بودند که راهی برای این مشکل پیداکردند ولی پاسخی ارائه ندادند

فایل مربوطه را به ضمیمه ارسال می کنم .


باتشکر : منتظر پاسخ دوستان

vbhamed
پنج شنبه 25 فروردین 1390, 14:21 عصر
سلام

از فكر اين اكتيوايكس خيلي قديمي كه خيلي جاها هم جواب نميده بيرون بياين
اين اكتيوايكس حتي تو سيستم اول هم در حالت USER غير ادمين جواب نميده

Sahand87
پنج شنبه 25 فروردین 1390, 16:36 عصر
سلام
باتشکر از پاسخ شما بلاخره یکی جواب مارداد
دوست عزیز این ocx درسیستم اول جواب میدهد یعنی با ایجاد ActiveX در فرم درست عمل می کند ولی باید برای هر سیستم جدید این اکتیو ایکس باید حذف و مجددا بر روی فرم قرار گیرد تا صحیح انجام شود .

vbhamed
جمعه 26 فروردین 1390, 10:33 صبح
سلام

اگر براي ساخت قفل مي خواين كه گفتم، لطفا يك بار ديگه پست رو با دقت بخونيد

Sahand87
جمعه 26 فروردین 1390, 16:54 عصر
سلام

دوست عزیز پست شما را ملاحظه کردم ، من از این ocx برای ساخت قفل نمی خوام استفاده کنم . برای بدست آورن سریال پردازنده کل سایت را ازجمله اینترنت را جستجوکردم موردی که بعنوان سریال یا یک شاخص یونیک یا منفرد برای پردازنده پیدا نکردم ، البته مواردی بعنوان سریال cpu ذکر شده بود که همان Prosseccor ID بود که روی خیلی از PC ها دارای شماره تکراری بود یا همان سری ساخت کارخانه بود ، من سریال سخت افزاری هارد را دارم که الان مشکل بدست آوردن سریال پردازنده و مادربرد هم هست .

ترجیحا با کد نویسی اگر بشود دسترسی دقیق به موارد فوق پیدا کرد از استفاده فایلهای خارجی بهتر است .علی الحال با جستجوی زیاد به این نتیجه رسیدم که بدست آوردن سریال پردازنده یا مادربرد یا بایوس از طریق VB6 تقریبا امکان پذیر نیست و اجبارا فقط می شود از طریق فایلهای خارجی از جمله OCX یا Dll که با زبان های برنامه نویسی دیگر ازجمله جاوا یا دلفی نوشته شده در VB6 استفاده کرد .

لازم به ذکر است که جهت من یک شاخص یونیک برای پردازنده و در صورت امکان مادربرد یا بایوس کافی است ولی تصور نمی کنم بجز سریال مورد دیگری بشود جایگزین کرد .

با مباحث زیادی که دراین تالار درمورد موارد فوق ارائه شده فکر نکنم به نتیجه رسیده باشند بیشتر تاپیکها بدون نتیجه قطعی نیمه کاره مونده که صد البته (صرفنظر از ایده های مختلف ساخت قفل ) بدست آورن پاسخ صحیح (درصورت امکان) علاوه بر رفع مشکل من به مبحث ساخت قفل هم کمک خواهد کرد.

vbhamed
شنبه 27 فروردین 1390, 21:52 عصر
سلام

براي بدست آوردن سريال هارد ديسك مي توني از DLL زير استفاده كني، دمو هم داره، البته رايگان نيست، شايد هم پيدا بشه

http://www.devlib.net/getdiskserial.htm

Sahand87
یک شنبه 28 فروردین 1390, 17:11 عصر
سلام
vbhamed عزیز متشکر از پاسختان
اما عرض کردم سریال هارد را دارم فقط سریال پردازنده و بازهم اگر بشود مادربرد را می خواهم.

M.T.P
یک شنبه 28 فروردین 1390, 19:11 عصر
سلام دوست عزیز...
من کلی نت رو گشتم ، نتونستم پیدا کنم.
البته با WMI میشه اطلاعات دقیق تمامی قطعات رو بدست آورد و من میتونم در اخیارتون قرار بدم ، اما متاسفانه همیشه مقدار برگشتی پروپرتی SerialNumber مربوط به قطعات رشته ( , ) هست و به نظرم این موضوع به خاطر عدم ارائه سریال از طرف قطعات هست.
متاسفانه تنها راه استفاده از شماره سریال هارد دیسک هست ، قطعه ای که بیشتر از بقیه سخت افزارها دستخوش خرابی است.

لینک زیر آبجکت هایی هست که شما میتونی با WMI برای انواع سخت افزارها تعریف و استفاده کنید.
http://msdn.microsoft.com/en-us/library/aa394084(v=VS.85).aspx

Sahand87
یک شنبه 28 فروردین 1390, 21:29 عصر
سلام دوست عزیز...
من کلی نت رو گشتم ، نتونستم پیدا کنم.
البته با WMI میشه اطلاعات دقیق تمامی قطعات رو بدست آورد و من میتونم در اخیارتون قرار بدم ، اما متاسفانه همیشه مقدار برگشتی پروپرتی SerialNumber مربوط به قطعات رشته ( , ) هست و به نظرم این موضوع به خاطر عدم ارائه سریال از طرف قطعات هست.
متاسفانه تنها راه استفاده از شماره سریال هارد دیسک هست ، قطعه ای که بیشتر از بقیه سخت افزارها دستخوش خرابی است.

لینک زیر آبجکت هایی هست که شما میتونی با WMI برای انواع سخت افزارها تعریف و استفاده کنید.
http://msdn.microsoft.com/en-us/library/aa394084(v=VS.85).aspx

شما درست می فرمائید برای من هم همین خروجی ارسال می شود . روی لپ تاپ با پردازنده 1.6 سریال مادربرد و پردازنده درست استخراج شد مثل اینکه روی پنتیوم 4 های قدیمی جواب میدهد ولی روی سیستم های Core(2) Duo مشکل دارد و همان خروجی (,) را میدهد.
البته ocx ارائه شده اگر دقت کرده باشید سریال پردازنده را درست ارائه میکند من توی آموزشگاه روی همه سیستمها آزمایش کردم پاسخ صحیح بود ولی برای اسکن سیستم هربار باید کامپاننت را حذف و مجددا آن را در فرم قرار داد مثل اینکه فقط در حالت ( ایجاد در فرم) مشخصات را استخراج میکند یا لااقل من راه بهتری بلد نیستم ( این مورد هم جهت ساخت یک برنامه قابل بهره برداری نیست) .
فکر کنم تنها راه حل استفاده از یک کامپاننت حالا OCX یا DLL به زبان جاوا یا C یا دلفی است که توسط VB فراخوانی شود و مشکل همه را حل کند.

M.T.P
دوشنبه 29 فروردین 1390, 12:33 عصر
اون کامپوننت رو که اصلا بی خیال شید.
چون با WMI تمامی مشخصاتی رو که اون میده میشه استخراج کرد و از باگش هم خلاص شد.


فکر کنم تنها راه حل استفاده از یک کامپاننت حالا OCX یا DLL به زبان جاوا یا C یا دلفی است که توسط VB فراخوانی شود و مشکل همه را حل کند.
تو فروم های خارجی(تالارهای C و ...) هم من دیدم کسی راه حل درست حسابی ارائه نکرده.

من خودم نیاز شدید به سریال CPU و MB دارم. :متفکر:
اما حتما باید یه راهی باشه... کجا و به چه شکل خدا عالمه :متفکر: :افسرده: :متفکر: :عصبانی++:

Sahand87
دوشنبه 29 فروردین 1390, 21:43 عصر
سلام

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

فکر کنم برای ساخت قفل خوبه البته شاخصها را بصورت ترکیبی هم اعلام میکنه.
مسئله امنیت خروجی ، برای من خیلی مهم نیست چون من سریال هارا برای ساخت قفل نمیخوام.

vbhamed
سه شنبه 30 فروردین 1390, 10:12 صبح
اون کامپوننت رو که اصلا بی خیال شید.
چون با WMI تمامی مشخصاتی رو که اون میده میشه استخراج کرد و از باگش هم خلاص شد.

تو فروم های خارجی(تالارهای C و ...) هم من دیدم کسی راه حل درست حسابی ارائه نکرده.

من خودم نیاز شدید به سریال CPU و MB دارم. :متفکر:
اما حتما باید یه راهی باشه... کجا و به چه شکل خدا عالمه :متفکر: :افسرده: :متفکر: :عصبانی++:

سلام

WMI هم راه مطمئني نيست
چون اگر برنامه WIndows Managment Instrument يا همون WMI رو سيستم نصب نباشه يا به نحوي UnInstall بشه ديگه اطلاعاتي بر نمي گردونه
اين نكته براي دوستاني كه مي خوان قفل بسازن اهميت داره

در مورد اين دوستمون هم كه تو پست آخر گفتن مسئله امنيت فايل خروجي نيست، ما هم با فايل خروجي كار نداريم، مسئله اينه كه خود فايل HWINFO امنيت نداره و در خيلي موارد كارش رو انجام نمي ده

Sahand87
سه شنبه 30 فروردین 1390, 21:19 عصر
سلام

مثل اینکه این فایل با دلفی نوشته شده فایل اجرایی که خوب کار می کنه

فکرکنم دو فولدر ضمیمه هم سورس فایل باشه آنهایی که با دلفی آشنایی دارن یک نگاهی بکنن اگرامکان تهیه یک فایل OCX باشه که از طریق VB قابل بهره برداری باشه که خیلی عالیه

برنامه ظاهرا فروشیه با مشکل رجیستری وکرک ...

mohammad-30
یک شنبه 09 بهمن 1390, 01:57 صبح
سلام
این فایل رو با vb امتحان کردم و جواب داده
شما از این آدرس دانلود کنید امیدوارم که جواب بده.

http://visualbasicvb.rozup.in/Documents/dctdtodybt8td974sjr.rar.html

Veteran
یک شنبه 09 بهمن 1390, 14:34 عصر
اون کامپوننت رو که اصلا بی خیال شید.
چون با WMI تمامی مشخصاتی رو که اون میده میشه استخراج کرد و از باگش هم خلاص شد.


تو فروم های خارجی(تالارهای C و ...) هم من دیدم کسی راه حل درست حسابی ارائه نکرده.

من خودم نیاز شدید به سریال CPU و MB دارم. :متفکر:
اما حتما باید یه راهی باشه... کجا و به چه شکل خدا عالمه :متفکر: :افسرده: :متفکر: :عصبانی++:
من اینو گیر اوردم اما نمیدونم مطمئن هست یا نه :متفکر:

Private Function CpuId() As String
Dim computer As String
Dim wmi As Variant
Dim processors As Variant
Dim cpu As Variant
Dim cpu_ids As String

computer = "."
Set wmi = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
computer & "\root\cimv2")
Set processors = wmi.ExecQuery("Select * from " & _
"Win32_Processor")

For Each cpu In processors
cpu_ids = cpu_ids & ", " & cpu.ProcessorId
Next cpu
If Len(cpu_ids) > 0 Then cpu_ids = Mid$(cpu_ids, 3)

CpuId = cpu_ids
End Function

http://www.vb-helper.com/howto_get_cpu_serial_number_id.html

Sahand87
یک شنبه 09 بهمن 1390, 15:52 عصر
نه درست نیست کد ارائه شده در خیلی از پردازنده ها مشتر که نمی دونم سری ساخته یا کد کارخانه درهر حال بصورت یکتا و واحد نیست .

IamOverlord
یک شنبه 09 بهمن 1390, 16:34 عصر
اگه Id پردازنده ها شبیه MAC Address باشه، اصولا فکر نمی کنم تکراری باشه...:متفکر:

Veteran
یک شنبه 09 بهمن 1390, 21:48 عصر
خب نمیشه بدون دی ال ال شماره سریال هارد رو به دست اورد ؟
یک راه مطمئن ؟
چون دیدم شماره درایو هارو میدن . یک راهی مطمئن میشه معرفی کنید که ما بتونیم شماره سریال هارد دیسک رو به دست بیاریم ؟ و بر اساس شماره سریال یک قفل بسازیم .

mahmood744
دوشنبه 10 بهمن 1390, 01:13 صبح
دوست عزیز این هم بهترین کامپونت برای هر چی که از سیستم می خواهید به شما می ده :متعجب:
Cpu , Ram , VGA , Keybord ,Mouse , Drive , Hard ,Monitor , OS , Modem , Dirctory , ...

81688
این هم سریال هارد بدون هیچ کامپونت
81689

اگر با حال بود تشکر یادتون نره :قلب:

موفق باشید