PDA

View Full Version : شماره سریال



javad_esmaily
جمعه 09 آبان 1382, 09:47 صبح
سلام به همه دوستان

می خواستم بدونم چه جوری میشه شماره سریال قطعات سخت افزار سیستم را از طریق VB به دست آورد. البته کد شماره سریال درایوها(هارد و سی دی) قبلاً استفاده کرده ام، و منظورم قطعاتی همچون مادربورد، cpuو ram و.. است. :?:

با تشکر

javad_esmaily
شنبه 10 آبان 1382, 09:20 صبح
کسی نبود :cry: :cry: :cry:

Andy
شنبه 10 آبان 1382, 12:11 عصر
سلام
منم یه وقتی روی این مورد کار کردم حتی برنامه اش رو بدست آوردم ولی متوقف شدم .اونم به این دلیل که دقت اجرای برنامه پیغام میداد که Wmi روی سیستم نصب نیستش، حالا این wmi چیه من که پیدا نکردم .اگه پیدا کردی به ما هم برسون

S.Azish
شنبه 10 آبان 1382, 12:41 عصر
WMI یا Windows Management Instrumentations یکسری از توابع هستن که ماکروسافت اونها رو جهت دسترسی به اطلاعات بسیار نزدیک به سخت افزار تولید کرد. WMI یک مجموعه بسیار زیاد از توابع مختلف هست که میتونید به اطلاعاتی مثل اطلاعات بایوس, مادربورد, CPU , کارتهای شبکه و بسیاری از اطلاعات دیگه دسترسی پیدا کنید. اول باید WMI رو روی دستگاهتون نصب کنید که میشه از آدرس زیر پیدا کرد

http://msdn.microsoft.com/library/default.asp?url=/downloads/list/wmi.asp

اطلاعات و نحوه استفاده
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/about_wmi.asp

Andy
شنبه 10 آبان 1382, 14:09 عصر
سلام
دمت گرم آقای مدیر جدا دمت گرم ایول

کم حوصله
شنبه 10 آبان 1382, 15:24 عصر
اندی جون برنامه ات را اینجا بگذار تا ما هم استفاده ای ببریم از تجربیات و معلوماتت :oops:

javad_esmaily
دوشنبه 12 آبان 1382, 09:46 صبح
از راهنمایی همتون ممنونم
ولی راه ساده تری وجود نداره؟ آخه من یکمی عجله دارم و این WMI یکمی کار می بره.
:roll:

linux
دوشنبه 12 آبان 1382, 23:57 عصر
Private Sub Form_Load()
MsgBox wmiProcessorInfo
MsgBox wmihardinfo
End Sub

Private Function wmiProcessorInfo() As String


Dim cpuSet As SWbemObjectSet
Dim cpu As SWbemObject

Dim strR As String
Dim s1 As String
Dim l1 As Integer
Set cpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_Processor")

For Each cpu In cpuSet
strR = strR & cpu.Name & cpu.MaxClockSpeed & vbCrLf

'cpu.DeviceID
'cpu.Availability
'cpu.AddressWidth
'cpu.CpuStatus
'cpu.CurrentClockSpeed
'cpu.MaxClockSpeed
'cpu.L2CacheSize
'cpu.L2CacheSpeed
'cpu.VoltageCaps
'cpu.Name

Next
s1 = Trim$(strR)
l1 = Len(Trim$(strR))
wmiProcessorInfo = Left$(s1, l1 - 2)
End Function

این کد را من توی یه سایت روسی پیدا کردم!
بیشتر از این کسی چیزی می‌دونه؟
اصلا برای اینکارها dll هست یا نه/

javad_esmaily
پنج شنبه 15 آبان 1382, 10:08 صبح
جناب linux مشکل من شد. از راهنماییتون ممنونم. با کد اصلاح شده زیر میشه Processor ID بدست آورد. البته بگم این کد برای اجرا به هیچ فایلی علاوه بر فایلهای موجود در ویندوز احتیاج ندارد.


Private Sub Form_Load()
MsgBox "Processor ID:" & wmiProcessorInfo
End Sub

Private Function wmiProcessorInfo() As String
Dim strR As String
Dim s1 As String
Dim l1 As Integer
Set cpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
InstancesOf("Win32_Processor")
For Each cpu In cpuSet
strR = strR & "ProcessorID :" & cpu.processorid & vbCrLf
'cpu.Revision
'cpu.Manufacturer
'cpu.Caption
'cpu.DeviceID
'cpu.Availability
'cpu.AddressWidth
'cpu.CpuStatus
'cpu.CurrentClockSpeed
'cpu.MaxClockSpeed
'cpu.L2CacheSize
'cpu.L2CacheSpeed
'cpu.VoltageCaps
'cpu.Name
Next
s1 = Trim$(strR)
l1 = Len(Trim$(strR))
wmiProcessorInfo = Left$(s1, l1 - 2)
End Function

من دوتا سوال دیگه داشتم که هرکی میدونه لطفاً جواب بده:
1- چه جوری میشه وقتی یک فایل اجرایی را با استفاده از دستور shell اجرا میکنیم برنامه اجرا کننده تا خاتمه برنامه منتظر بمونه؟
2- همونطور که میدونید Task Manager ویندوز xp یک قسمت به نام Processes داره که هر فایل در حال اجرا را نشون میده. حالا سوال من اینه که چه جوری میشه کاری کرد که یک برنامه در این قسمت نشون داده نشه و یا حداقل با اسمی که میخوایم نشون داده بشه؟

madmax
شنبه 08 آذر 1382, 01:40 صبح
در مورد سئوال دوم من یک تجربه جالب دارم شاید بدرده کسی بخوره
اولا Task Manager اسم فایل EXE رو نمایش میده اما واسه اینکه کاربر برنامه شما رو نشناسه و نتونه Close کنه می تونی اسم فایل EXE رو Services.exe بزاری اینجوری هر وقت کسی بخواد اونو ببنده Widndows با Services خودش اشتباه می گیره و نمی بندتش :lol:
امیدوارم بدردت بخوره

ساران سافت
شنبه 08 آذر 1382, 09:57 صبح
واسه اینکه کاربر برنامه شما رو نشناسه و نتونه Close کنه می تونی اسم فایل EXE رو Services.exe بزاری اینجوری هر وقت کسی بخواد اونو ببنده Widndows با Services خودش اشتباه می گیره و نمی بندتش :lol:

عجب! :تشویق:

Andy
یک شنبه 09 آذر 1382, 10:35 صبح
جالب بود 8)

Andy
یک شنبه 09 آذر 1382, 10:35 صبح
جالب بود 8)

ali_hadian
چهارشنبه 26 اسفند 1383, 16:52 عصر
چه جوری میشه وقتی یک فایل اجرایی را با استفاده از دستور shell اجرا میکنیم برنامه اجرا کننده تا خاتمه برنامه منتظر بمونه؟

از کلاس process اسنفاده کنید
process.Start
Process.waitforexit
process.close

برای اطلاعات بیشتر تو msdn عبارت process class رو تست کنید
موفق باشید

rezaei manesh
دوشنبه 06 تیر 1384, 15:57 عصر
سلام
این تیکه برنامه فکر کنم باگ داره
SWbemObject-SWbemObjectSet و$Left این ها رو نمی شناسه
من هم نتونستم پیدا کنم اینها چی هستن لطفا کمک کنید؟
:گیج: :flower:

meh_secure
سه شنبه 07 تیر 1384, 23:09 عصر
ولی WMI راحت تره. قوی ترم هستش. تو بخش vb6 هم یک سری کد برای بدست آوردن سریال و این طور چیزا نوشته شده که بد نیست اونا رو هم ببینید. :wise1: