PDA

View Full Version : WMI



man.inam
یک شنبه 23 دی 1386, 14:28 عصر
سلام
می شه لطف کنید و یه کمی درباره WMI و نحوه استفاده اون تو VB
توضیح بدید ؟؟؟
ممنون می شم

man.inam
دوشنبه 24 دی 1386, 13:57 عصر
کسی نبود کمک کنه ؟؟؟

ftmotlagh
دوشنبه 24 دی 1386, 17:35 عصر
شما این کلمه رو کجا شنیدید؟؟؟

noorsoft
دوشنبه 24 دی 1386, 17:45 عصر
منظور شما
Windows Management Instrumentation

bigboy_user
دوشنبه 24 دی 1386, 18:03 عصر
تا اونجایی که بنده اطلاع دارم ازتوابع و کلاسهای WMI برای کار با سخت افزار سیستم استفاده می شود ...
برای اطلاع بیشتر یه سرچ توی اینترنت داشته باشی ، دو تا لینک زیر هم که مال مایکروسافت ، بد نیست نگاهشون کنی

http://msdn2.microsoft.com/en-us/library/aa394572(VS.85).aspx


http://msdn2.microsoft.com/en-us/library/aa393964.aspx

مبین رنجبر
دوشنبه 24 دی 1386, 19:00 عصر
در تاپیک قفل نرم افزاری به خوبی توضیح داده شده است .. سرچ کنید

man.inam
دوشنبه 24 دی 1386, 23:24 عصر
تا اونجایی که بنده اطلاع دارم ازتوابع و کلاسهای WMI برای کار با سخت افزار سیستم استفاده می شود ...
برای اطلاع بیشتر یه سرچ توی اینترنت داشته باشی ، دو تا لینک زیر هم که مال مایکروسافت ، بد نیست نگاهشون کنی

http://msdn2.microsoft.com/en-us/library/aa394572(VS.85).aspx


http://msdn2.microsoft.com/en-us/library/aa393964.aspx

ممنون از لطفتون

man.inam
دوشنبه 24 دی 1386, 23:24 عصر
در تاپیک قفل نرم افزاری به خوبی توضیح داده شده است .. سرچ کنید

چیزی که به درد من بخوره نبود اونجا ...ممنون

man.inam
دوشنبه 24 دی 1386, 23:32 عصر
Option Explicit
Private Sub GetALL()
Dim strObject
On Error Resume Next
Dim objLocator, objWMIService, objItem
Dim colItems, strComputer, strUser, strPassword
strComputer = ""
strUser = ""
strPassword = ""

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(strComputer, "root/cimv2", strUser, strPassword)
objWMIService.Security_.impersonationlevel = 3
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPEntity", , 48)

For Each objItem In colItems
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Description : " & CStr(objItem.Description)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Caption: " & CStr(objItem.Caption)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "ClassGuid : " & CStr(objItem.ClassGuid)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Name: " & CStr(objItem.Name)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "DeviceID : " & CStr(objItem.DeviceID)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Manufacturer : " & CStr(objItem.Manufacturer)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Service : " & CStr(objItem.Service)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Status : " & CStr(objItem.Status)

txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "---------------------------------------------"
Next
End Sub
Private Sub Command1_Click()
GetALL
MsgBox "DONE!"
End Sub





این کد لیست دستگاه های ورودی/خروجی رو نشون می ده و با
نوشته شده درسته ؟؟؟ WMI
ولی من نمیدونم چه طوری ازش استفاده می کنن ...
اگه شما چیزی در این مورد و این کد چیزی می دونید ممنون می شم اگه کمکم کنید

مبین رنجبر
سه شنبه 25 دی 1386, 13:41 عصر
سلام .. این سورسی که اینجا میزارم برای استفاده از کدهایی هست که جناب man.inam نوشتن ... گرفتن اطلاعات تمامی سخت افزار های سیستم

man.inam
سه شنبه 25 دی 1386, 13:48 عصر
سلام .. این سورسی که اینجا میزارم برای استفاده از کدهایی هست که جناب man.inam نوشتن ... گرفتن اطلاعات تمامی سخت افزار های سیستم

لطف کردین دوست عزیز
ولی شما میتونید واسه من یه کوچولو توضیح بدید که چطور شده اینطور شده ؟؟؟
راستیتش ما باید یه پروژه باید تحویل بدیم (System Info )البته بدون استفاده از توابع API
من قسمتای memory و system summary رو نوشتم ...ولی واسه قسمت I/O نتونستم چیزی پیدا کنم ...یکی از دوستان لطف کردن و این کد رو واسم پیدا کردن .
ولی من نمیدونم چی به چیه اینجا ... می تونید توضیح بدید ؟؟؟

مبین رنجبر
سه شنبه 25 دی 1386, 14:54 عصر
والا منم چیزی از این کدها متوجه نشدم ... اما بدون توابع API کارتون رو سخت میکنه ..

man.inam
سه شنبه 25 دی 1386, 15:32 عصر
والا منم چیزی از این کدها متوجه نشدم ... اما بدون توابع API کارتون رو سخت میکنه ..

اگه شما API این رو دارین لطفا اونو بذارید ...ممنون می شم

مبین رنجبر
سه شنبه 25 دی 1386, 17:34 عصر
من قبلا یه سورس واسه گرفتن مشخصات سخت افزاری سیستم با API داشتم .. اما الان هرچی میگردم پیداش نمیکنم .. فکر کنم از همین سایت گرفته بودمش ..شاید دوستان دیگه داشته باشن

man.inam
چهارشنبه 26 دی 1386, 19:26 عصر
من خودم هم همچین سورسی دارم از همین سایت هم گرفته بودمش
ولی هیچ کودومش اطلاعات دستگاه های I/O رو نشون نمیده ...
غیره همون تیکه کدی که گذاشتم که اونم WMI

Mbt925
چهارشنبه 26 دی 1386, 20:48 عصر
Option Explicit
Private Sub GetALL()
Dim strObject
On Error Resume Next
Dim objLocator, objWMIService, objItem
Dim colItems, strComputer, strUser, strPassword
strComputer = ""
strUser = ""
strPassword = ""

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(strComputer, "root/cimv2", strUser, strPassword)
objWMIService.Security_.impersonationlevel = 3
Set colItems = objWMIService.ExecQuery("Select * from Win32_PnPEntity", , 48)

For Each objItem In colItems
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Description : " & CStr(objItem.Description)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Caption: " & CStr(objItem.Caption)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "ClassGuid : " & CStr(objItem.ClassGuid)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Name: " & CStr(objItem.Name)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "DeviceID : " & CStr(objItem.DeviceID)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Manufacturer : " & CStr(objItem.Manufacturer)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Service : " & CStr(objItem.Service)
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Status : " & CStr(objItem.Status)

txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "---------------------------------------------"
Next
End Sub
Private Sub Command1_Click()
GetALL
MsgBox "DONE!"
End Sub





ولی من نمیدونم چه طوری ازش استفاده می کنن ...
اگه شما چیزی در این مورد و این کد چیزی می دونید ممنون می شم اگه کمکم کنید


شما چه چیزی از این نمونه رو لازم دارین که نمی تونین ازش استفاده کنین؟
مشکل کجاست؟

man.inam
چهارشنبه 26 دی 1386, 22:19 عصر
شما چه چیزی از این نمونه رو لازم دارین که نمی تونین ازش استفاده کنین؟
مشکل کجاست؟

دوست عزیز ، موقع تحویل پروژه استاد محترم از بنده توضیح خواهند خواست
ولی من از این کد چیزی سر در نمیارم ...

Mbt925
پنج شنبه 27 دی 1386, 11:13 صبح
دوست عزیز ، موقع تحویل پروژه استاد محترم از بنده توضیح خواهند خواست
ولی من از این کد چیزی سر در نمیارم ...

اگه شما هم سر در بیاری ، استادتون چیزی سر در نمیاره ، پس زیاد تفاوتی نمی کنه.

یه توضیح مختصر :

root/cimv2 یه فضای اسمی هست که یه سری کلاس ها توش تعریغ شده و در ابتدا بهش کانکت شده تا بتونه از کلاس هاش استفاده کنه.
برای اینکه بتونه بهش کانکت بشه به یه آبجکت از WbemScripting.SWbemLocator نیاز داره.

لیست کلاس های این فضای اسمی رو می تونین در این آدرس مشاهده کنید:

http://www.webtropy.com/articles/wmi-namespace.asp?wmi=root-CIMV2-Applications-MicrosoftIEاز قضا یکی از کلاس هایی که توی این فضای اسمی وجود داره Win32_PnPEntity هست.
این کلاس Device های Plug and Play رو تو خودش داره که توی Device Manager مشاهده میشن.
مشاهده اطلاعات مربوط به این کلاس در آدرس زیر:

http://www.webtropy.com/articles/wmi.asp?wmi=Win32_PnPEntityPNP مخفف Plug and Play هست.

این کلاس پراپرتی های زیر رو داراست :




Class properties:

Win32_PnPEntity.Availability
Win32_PnPEntity.Caption
Win32_PnPEntity.ClassGuid
Win32_PnPEntity.ConfigManagerErrorCode
Win32_PnPEntity.ConfigManagerUserConfig
Win32_PnPEntity.CreationClassName
Win32_PnPEntity.Description
Win32_PnPEntity.DeviceID
Win32_PnPEntity.ErrorCleared
Win32_PnPEntity.ErrorDescription
Win32_PnPEntity.InstallDate
Win32_PnPEntity.LastErrorCode
Win32_PnPEntity.Manufacturer
Win32_PnPEntity.Name
Win32_PnPEntity.PNPDeviceID
Win32_PnPEntity.PowerManagementCapabilities
Win32_PnPEntity.PowerManagementSupported
Win32_PnPEntity.Service
Win32_PnPEntity.Status
Win32_PnPEntity.StatusInfo
Win32_PnPEntity.SystemCreationClassName
Win32_PnPEntity.SystemName

اگه چیزه دیگه ای هم در موردش نیاز هست بگین.

man.inam
پنج شنبه 27 دی 1386, 14:04 عصر
اگه شما هم سر در بیاری ، استادتون چیزی سر در نمیاره ، پس زیاد تفاوتی نمی کنه.

یه توضیح مختصر :

root/cimv2 یه فضای اسمی هست که یه سری کلاس ها توش تعریغ شده و در ابتدا بهش کانکت شده تا بتونه از کلاس هاش استفاده کنه.
برای اینکه بتونه بهش کانکت بشه به یه آبجکت از WbemScripting.SWbemLocator نیاز داره.

لیست کلاس های این فضای اسمی رو می تونین در این آدرس مشاهده کنید:

http://www.webtropy.com/articles/wmi-namespace.asp?wmi=root-CIMV2-Applications-MicrosoftIEاز قضا یکی از کلاس هایی که توی این فضای اسمی وجود داره Win32_PnPEntity هست.
این کلاس Device های Plug and Play رو تو خودش داره که توی Device Manager مشاهده میشن.
مشاهده اطلاعات مربوط به این کلاس در آدرس زیر:

http://www.webtropy.com/articles/wmi.asp?wmi=Win32_PnPEntityPNP مخفف Plug and Play هست.

این کلاس پراپرتی های زیر رو داراست :




Class properties:


Win32_PnPEntity.Availability
Win32_PnPEntity.Caption
Win32_PnPEntity.ClassGuid
Win32_PnPEntity.ConfigManagerErrorCode
Win32_PnPEntity.ConfigManagerUserConfig
Win32_PnPEntity.CreationClassName
Win32_PnPEntity.Description
Win32_PnPEntity.DeviceID
Win32_PnPEntity.ErrorCleared
Win32_PnPEntity.ErrorDescription
Win32_PnPEntity.InstallDate
Win32_PnPEntity.LastErrorCode
Win32_PnPEntity.Manufacturer
Win32_PnPEntity.Name
Win32_PnPEntity.PNPDeviceID
Win32_PnPEntity.PowerManagementCapabilities
Win32_PnPEntity.PowerManagementSupported
Win32_PnPEntity.Service
Win32_PnPEntity.Status
Win32_PnPEntity.StatusInfo
Win32_PnPEntity.SystemCreationClassName
Win32_PnPEntity.SystemName



اگه چیزه دیگه ای هم در موردش نیاز هست بگین.






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

man.inam
پنج شنبه 27 دی 1386, 14:05 عصر
http://www.iranwebsoft.com/apistart.asp

اینم یه سایت پر از توابع API

man.inam
شنبه 29 دی 1386, 18:18 عصر
txtMainDesc.Text = txtMainDesc.Text + vbNewLine + "Description : " & CStr(objItem.Description)

تو این کد بالایی چرا بعد =نوشته txtMainDesc.Text + vbNewLine
خیلی عذر می خوام می شه اینم بگید ؟؟؟

Mbt925
شنبه 29 دی 1386, 19:29 عصر
VBNewLine باعث میشه بقیه اطلاعات در خط بعد قرار بگیره.

man.inam
شنبه 29 دی 1386, 22:20 عصر
VBNewLine باعث میشه بقیه اطلاعات در خط بعد قرار بگیره.

خیلی ممنون...
یه سوال دیگه ...حالا اگه اینجا بخوایم از یه WMI دیگه استفاده کنیم که یه سری اطلاعات دیگه رو بده ...قسمت ("Select * from Win32_PnPEntity", , 48 رو باید تغییر بدیم ؟

Mbt925
شنبه 29 دی 1386, 22:31 عصر
بله.
می تونید از اون صفحاتی که معرفی کردم هم کمک بگیرین.