امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
گرفتن لیست پروسه ها از طریق WMI
نویسنده پیام
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #1
گرفتن لیست پروسه ها از طریق WMI
یکی از بخشهای مهم ویندوز بخش wmi میباشد که اطلاعات جامعی از منابع سیستم و پروسه ها ... را میتوان از ان دریافت نمود
یکی از چیزهایی که میتوان از این طریق دریافت کرد لیست پروسه ها میباشد

اطلاعات پروسه ای که از این طریق به شما داده میشود در زیر امده است

کد:
Win32_Process = CIM_Process record
{
Caption:string;
CommandLine:string;
CreationClassName:string;
CreationDate:datetime;
CSCreationClassName:string;
CSName:string;
Description:string;
ExecutablePath:string;
ExecutionState:uint16;
Handle:string;
HandleCount:uint32;
InstallDate:datetime;
KernelModeTime:uint64;
MaximumWorkingSetSize:uint32;
MinimumWorkingSetSize:uint32;
Name:string;
OSCreationClassName:string;
OSName:string;
OtherOperationCount:uint64;
OtherTransferCount:uint64;
PageFaults:uint32;
PageFileUsage:uint32;
ParentProcessId:uint32;
PeakPageFileUsage:uint32;
PeakVirtualSize:uint64;
PeakWorkingSetSize:uint32;
Priority:uint32;
PrivatePageCount:uint64;
ProcessId:uint32;
QuotaNonPagedPoolUsage:uint32;
QuotaPagedPoolUsage:uint32;
QuotaPeakNonPagedPoolUsage:uint32;
QuotaPeakPagedPoolUsage:uint32;
ReadOperationCount:uint64;
ReadTransferCount:uint64;
SessionId:uint32;
Status:string;
TerminationDate:datetime;
ThreadCount:uint32;
UserModeTime:uint64;
VirtualSize:uint64;
WindowsVersion:string;
WorkingSetSize:uint64;
WriteOperationCount:uint64;
WriteTransferCount:uint64;
};

این کلاس داری متدهای زیر میباشد
AttachDebugger
دیباگر پیشفرض را برای دیباگ یک پروسه اجرا میکند
Create ایجاد پروسه جدید.
GetOwner
نام کاربری و نام دومین یک پروسه را برمیگرداند
GetOwnerSid این متد security identifire یا همان CID یک پروسه را برمیگرداند
SetPriority
تغییر اولویت اجرای پروسه
Terminate
بستن یک پروسه

مثال
کد:
uses
ActiveX,ComObj

procedure GetWin32_proc32;
const
wbemFlagForwardOnly = $00000020;
var
FSWbemLocator : OLEVariant;
FWMIService : OLEVariant;
FWbemObjectSet: OLEVariant;
FWbemObject : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
sngProcessTime: Double;
begin;
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_Process','WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
Form1.lst1.Items.Add(Format('Process: %s',[String(FWbemObject.Name)]));
Form1.lst1.Items.Add(Format('Description: %s',[String(FWbemObject.Description)]));
Form1.lst1.Items.Add(Format('OSName: %s',[String(FWbemObject.OSName)]));
Form1.lst1.Items.Add(Format('Priority: %s',[String(FWbemObject.Priority)]));
sngProcessTime := (Int64(FWbemObject.KernelModeTime) + Int64(FWbemObject.UserModeTime)) / 10000000.0;
Form1.lst1.Items.Add(Format('Processor Time: %n',[sngProcessTime]));
Form1.lst1.Items.Add(Format('Process Id: %d',[Integer(FWbemObject.ProcessID)]));
Form1.lst1.Items.Add(Format('Working SetSize: %d',[Int64(FWbemObject.WorkingSetSize)]));
Form1.lst1.Items.Add(Format('Page File Usage: %d',[Int64(FWbemObject.PageFileUsage)]));
Form1.lst1.Items.Add(Format('Page Faults: %d',[Int64(FWbemObject.PageFaults)]));
Form1.lst1.Items.Add('');
FWbemObject:=Unassigned;
end;
end;


procedure TForm1.btn1Click(Sender: TObject);
begin
GetWin32_proc32;
end;

http://msdn.microsoft.com/en-us/library/...85%29.aspx

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
(آخرین ویرایش در این ارسال: ۱۷-آبان-۱۳۹۱, ۱۲:۱۳:۰۱، توسط lord_viper.)
۱۷-آبان-۱۳۹۱, ۱۱:۵۱:۳۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : The.Ghost, godvb


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  عکس گرفتن از کامپوننت ScrollBox برنامه Lazarus Majid_Ebru 0 1,878 ۲۶-اردیبهشت-۱۳۹۵, ۱۷:۴۷:۵۱
آخرین ارسال: Majid_Ebru
  گرفتن سریال فیزیکی هارد lord_viper 0 2,134 ۰۴-اردیبهشت-۱۳۹۲, ۰۹:۰۱:۰۴
آخرین ارسال: lord_viper
  ارسال داده به IC حافظه از طریق دلفی mirn96 0 2,441 ۱۴-اردیبهشت-۱۳۹۱, ۱۰:۴۹:۰۱
آخرین ارسال: mirn96
  گرفتن ادرس پوشه جاری در Explorer.exe lord_viper 0 2,455 ۱۵-فروردین-۱۳۹۰, ۱۰:۴۳:۴۹
آخرین ارسال: lord_viper
Exclamation مخفی سازی پروسس برنامه از لیست برنامه هایی مثل تسک منیجر beh.tehrani 2 3,355 ۲۸-دى-۱۳۸۸, ۱۷:۳۸:۰۵
آخرین ارسال: mlotfi63
  اتصال کلاینت ها به بانک روی سرور از طریق اینترنت delphi7 1 7,144 ۰۵-اسفند-۱۳۸۷, ۲۳:۰۷:۱۷
آخرین ارسال: lord_viper
  لیست باکس : چگونگی خذف ... Vig 1 2,530 ۱۷-آبان-۱۳۸۷, ۱۷:۲۰:۵۹
آخرین ارسال: lord_viper
  پاسخ به رویدادها در حین پیشرفت پروسه mojtabamalaekeh 3 2,115 ۰۳-بهمن-۱۳۸۶, ۱۲:۰۹:۴۱
آخرین ارسال: ΛΛ Θ l-l $ Σ Ω
  ارسال فایل بین دو کامپیوتر از طریق مودم در دلفی omid1818 2 3,769 ۲۸-مرداد-۱۳۸۵, ۱۲:۵۱:۱۲
آخرین ارسال: lolohacko

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS