PDA

View Full Version : گرفتن اطلاعاتی خاص در مورد سیستم



mohsengrisly
سه شنبه 18 اسفند 1383, 00:55 صبح
با سلام به همه دوستان عزیز
برای قسمتی از برنامه به اطلاعاتی خاص از سیستم نظیر
دمای داخلی کیس .دمای سی پی یو و سرعت فن ان . دمای چیپست های دیگر .
مشخص کردن سنسور های داخلی سیستم
دمای چیپ کارت گرافیک و سرعت فن ان و دمای هارد و سرعت گردش فن ها و اطلاعاتی نظیر همین
نیاز دارم ولی نمی دونم چه کار باید بکنم
از توجه شما دوستان عزیز ممنونم
هر گونه اطلاعاتی باشه راهنمایی پیشنهاد کمک نمونه سورس کد و خلاصه هر جور چیزی که کمکم کنه خیلی ممنون میشم

MM_Mofidi
سه شنبه 18 اسفند 1383, 10:07 صبح
همش نه ولی خیلی هاشو با WMI میشه بدست آورد البته روی همه سیستمها جواب نمیده.

mohsengrisly
سه شنبه 18 اسفند 1383, 14:01 عصر
سلام و ممنونم از تو جه شما
جناب مفیدی اگر ممکن است کمی بیشتر توضیح دهید و ایا نمونه ای هم مو جود است
:)

بابک زواری
چهارشنبه 19 اسفند 1383, 12:50 عصر
اقای mohsengrisly من سورس مربوط به این کار رو داشتم ولی از موقعی که
این تاپیک رو گذاشتید دنبال اون میگردم و متاسفانه پیدا نمیکنم.
به محض اینکه پیدا کردم براتون میذارم اینجا

MM_Mofidi
چهارشنبه 19 اسفند 1383, 15:57 عصر
این یک نمونه


' ************************************************** **************************
' This function lists fan status info and settings of a (remote) computer, like
' availability, speed, status, and so on.
' ************************************************** **************************
' Goto http://www.activexperts.com/activmonitor and click on WMI Samples
' for more samples
' ************************************************** **************************

Sub ListFanInfo( strComputer )
Dim objWMIService, colItems

Set objWMIService = GetObject("WinMgmts://" & strComputer & "/root/cimv2").InstancesOf("Win32_Fan")
'GetObject("winmgmts//" & strComputer & "/root/cimv2").ExecQuery("Select * from Win32_Fan",,48)
'Set colItems = objWMIService
For Each obj in objWMIService
Wscript.Echo "ActiveCooling: " & objItem.ActiveCooling
Wscript.Echo "Availability: " & objItem.Availability
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
Wscript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
Wscript.Echo "CreationClassName: " & objItem.CreationClassName
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "DesiredSpeed: " & objItem.DesiredSpeed
Wscript.Echo "DeviceID: " & objItem.DeviceID
Wscript.Echo "ErrorCleared: " & objItem.ErrorCleared
Wscript.Echo "ErrorDescription: " & objItem.ErrorDescription
Wscript.Echo "InstallDate: " & objItem.InstallDate
Wscript.Echo "LastErrorCode: " & objItem.LastErrorCode
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
Wscript.Echo "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities
Wscript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
Wscript.Echo "Status: " & objItem.Status
Wscript.Echo "StatusInfo: " & objItem.StatusInfo
Wscript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
Wscript.Echo "SystemName: " & objItem.SystemName
Wscript.Echo "VariableSpeed: " & objItem.VariableSpeed
Next
End Sub


' ************************************************** **************************
' Main
' ************************************************** **************************
Dim strComputer
Do
strComputer = inputbox( "Please enter a computername or . for local computer", "Input" )
Loop until strComputer <> ""

ListFanInfo( strComputer )

WScript.Echo( vbCrlf & "For more samples, goto http://www.activexperts.com/activmonitor and click on WMI samples" )
'WScript.Echo( "on WMI samples" )

بریز تو یک فایل با پسوند vbs بعد اجراش کن بد نیست البته خیلی جاها جواب نمیده البته با این مثال و رفرنسهایی که بهت میده قاعدتا باید بقیه را خودت بتونی حل کنی :موفق: :wise1:

mohsengrisly
چهارشنبه 19 اسفند 1383, 19:44 عصر
با سلام
جناب مفیدی از توجه شما ممنونم
اما نمونه شما را به روی 4 تا سیستم ازمایش کردم
جوابی نگرفتم به جز یک پیغام خطا
منتظر نمونه شما هستم جناب زواری
بقیه دوستان هم اگر مطلبی دارند لطفا بفرمایید حتی یه راهنمایی کوچیک

mohsengrisly
دوشنبه 24 اسفند 1383, 00:34 صبح
سلام به همه
نمی دونم چرا اما از هر راهی که می خوام کاری کنم نمی شه حالا به دلایل مختلف :embr:
اما یعنی واقعا میان اینهمه برنامه نویس توپ کسی تو این زمینه سر رشته و تجربه ای نداره :D
ممنونم اگر کسی کمکی کنه
اگر هم نتونستید از توجه شما که حداقل به موضوع توجه کردید ممنونم :mrgreen:
:موفق:

حامد مصافی
دوشنبه 24 اسفند 1383, 00:42 صبح
جناب مفیدی از توجه شما ممنونم
اما نمونه شما را به روی 4 تا سیستم ازمایش کردم
جوابی نگرفتم به جز یک پیغام خطا


محسن خان نمونه ای که آقای مفیدی گذاشتن به زبان وی بی اسکریپته باید به وی بی تبدیلش کنی

mohsengrisly
پنج شنبه 27 اسفند 1383, 15:43 عصر
بازم سلام
یعنی واقعا میان اینهمه برنامه نویس توپ کسی تو این زمینه سر رشته و تجربه ای نداره
ممنونم اگر کسی کمک بیشتری کنه :موفق:

mohsengrisly
پنج شنبه 11 فروردین 1384, 14:47 عصر
بازم سلام
روی این موضوع سال هم نو شدا کسی نمی خواد کمکی کنه
:گیج:

MM_Mofidi
پنج شنبه 11 فروردین 1384, 23:02 عصر
محسن جان یک سر به msdn بزن همه اینها را تحت WMI میتونی پیدا کنی فقط به علت اینکه مادر بوردهای مختلف ممکن است همه کارهاشون دقیقا با استاندارد های مربوطه منطبق نباشه بعضی جاها کار نمیکنه(فرق A class با D Class همینا است دیگه) :wink:

FinalMOB
دوشنبه 20 اردیبهشت 1389, 19:33 عصر
با سلام خدمت همه دوستان
خیلی وقته میام تو این سایت، این اولین پست بنده در این سایته، حیفم اومد چیزی ندم :بامزه:
دوستان اگه هنوز این مشکل رو دارند، می تونن از این کد استفاده کنند، اگه اطلاعات بیشتری نیاز دارین، PM بدین
For Each WMI In GetObject("winmgmts:").InstancesOf("Win32_Product")
Print WMI.Name
Next
اینو مثلا توی Command1_Click می تونید بنویسید
این قطعه کد، لیست تمامی برنامه های نصب شده رو سیستم رو شیرین میزاره کف دستتون
البته به جای Win32_Product میشه خیلی چیزای دیگه ای گذاشت که اطلاعات فوق تخصصی ویندوز رو بهتون میده
به عنوان مثال شما می تونید یه چیزی شبیه Task Manager ویندوز و حتی قویتر از اون رو درست کنید
کاری که توی این دستور میشه انجام داد اینه که میشه همین اطلاعات رو از روی یه سیستم دیگه که آی پی اون رو میدونین بردارین، البته شیطونی تا همینجا بسه :لبخند:
اگه اطلاعات بیشتر خواستین، پست بدین یا با PM اطلاع بدین :بامزه:
یا حق

samkoper
یک شنبه 26 اردیبهشت 1389, 18:42 عصر
با سلام خدمت همه دوستان
خیلی وقته میام تو این سایت، این اولین پست بنده در این سایته، حیفم اومد چیزی ندم :بامزه:
دوستان اگه هنوز این مشکل رو دارند، می تونن از این کد استفاده کنند، اگه اطلاعات بیشتری نیاز دارین، PM بدین
For Each WMI In GetObject("winmgmts:").InstancesOf("Win32_Product")
Print WMI.Name
Next
اینو مثلا توی Command1_Click می تونید بنویسید
این قطعه کد، لیست تمامی برنامه های نصب شده رو سیستم رو شیرین میزاره کف دستتون
البته به جای Win32_Product میشه خیلی چیزای دیگه ای گذاشت که اطلاعات فوق تخصصی ویندوز رو بهتون میده
به عنوان مثال شما می تونید یه چیزی شبیه Task Manager ویندوز و حتی قویتر از اون رو درست کنید
کاری که توی این دستور میشه انجام داد اینه که میشه همین اطلاعات رو از روی یه سیستم دیگه که آی پی اون رو میدونین بردارین، البته شیطونی تا همینجا بسه :لبخند:
اگه اطلاعات بیشتر خواستین، پست بدین یا با PM اطلاع بدین :بامزه:
یا حق
با سلام خدمت شما دوست عزيز
اگر محبت كنيد و در اين مورد بيشتر توضيح بدين و نمونه كد هم بزارين ممنون ميشم.

FinalMOB
دوشنبه 27 اردیبهشت 1389, 01:45 صبح
با سلام خدمت شما دوست عزيز
اگر محبت كنيد و در اين مورد بيشتر توضيح بدين و نمونه كد هم بزارين ممنون ميشم.

سلام دوست عزیز
یه مبحثی در ویندوز مطرح هستش به اسم WMI یا Windows Management Instrumentation به معنی ابزار مدیریت ویندوز.
در واقع ویندوز یه سری اسکریپت رو در اختیار برنامه نویس قرار داده که به جرأت میگم توسط این کدها میشه به اکثر قسمت های ویندوز دسترسی داشت.
به عنوان مثال شما می تونید از به اطلاعات کامل از بایاس، CPU،رم، پروسسهای در حال اجرا و بیش از 400 قسمت دیگه توی ویندوز دسترسی پیدا کنید.
طریقه استفاده از این کدها در VB اینجوریه


For Each Process In GetObject("winmgmts:").InstancesOf("Win32_Process")
Print Process.ExecutablePath
Next

در این قطعه کد، یک شیء از نوع کلاسی در ویندوز "winmgmts" ساخته میشه؛ این شی خودش دارای یه زیر مجموعه ی مدیریتی 430 تایی هستش که لیست کامل اون رو در لینک زیر میتونید ببینید: (لینک رو که باز کردید به آخر اون صفحه ی باز شده مراجعه کنید)
http://msdn.microsoft.com/en-us/library/aa394084%28VS.85%29.aspx


یکی از این 430 قسمت مدیریتی "Win32_Process" هستش که توسط این قسمت می تونید به پروسسهای در حال اجرای ویندوز دسترسی پیدا کنید.
لازم به ذکره که خود "Win32_Process" هم دارای یه سری متد و ویژگی هستش که متد ها و ویژگی های هر کلاسی رو می تونید از MSDN پیدا کنید (توی گوگل هم می تونید سرچ کنید)
به عنوان مثال لیست ویژگیهای کلاس "Win32_Process" رو واستون میذارم:


Caption
CommandLine
CreationClassName
CreationDate
CSCreationClassName
CSName
Description
ExecutablePath
ExecutionState
Handle
HandleCount
InstallDate
KernelModeTime
MaximumWorkingSetSize
MinimumWorkingSetSize
Name
OSCreationClassName
OSName
OtherOperationCount
OtherTransferCount
PageFaults
PageFileUsage
ParentProcessId
PeakPageFileUsage
PeakVirtualSize
PeakWorkingSetSize
Priority
PrivatePageCount
ProcessId
QuotaNonPagedPoolUsage
QuotaPagedPoolUsage
QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage
ReadOperationCount
ReadTransferCount
SessionId
Status
TerminationDate
ThreadCount
UserModeTime
VirtualSize
WindowsVersion
WorkingSetSize
WriteOperationCount
WriteTransferCount


اینم از توابعش:

AttachDebugger



Create


GetOwner


GetOwnerSid


SetPriority


Terminate

البته اینجا جاش نیست که توضیح بدم ولی توی این آدرس، به طور کامل این کلاس توضیح داده شده (انگلیسیه ها ولی Google Traslator که نمرده :لبخند:)
http://msdn.microsoft.com/en-us/library/aa394372%28VS.85%29.aspx

حالا فرض کنین که می خواین یک پروسس در ویندوز رو که اسمش "VB6.exe" هستش رو ببندین (البته اگه اینکار رو بکنین، همون وقت ویژوال بیسیک بسته میشه ها:بامزه:) پس ضمیمه رو دانلود کنید :چشمک:

البته از اینکه یکمی پست بیش از حد طولانی شد عذر خواهی می کنم ولی بازم اگه بیشتر توضیح خواستین درخدمتیم.

موفق باشید
یا حق

daniyal_1363
دوشنبه 07 آذر 1390, 12:52 عصر
سلام

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

میشه در مورد اینترنت هم توضیح بدی ( اگه میشه به صورت کامل) البته از طریق همین ابزاری که گفتی

ممنون:قلب:

در ضمن من لینک های بالا را باز کردم ولی باز نشد