هل يمكنني الحصول على ExecutablePath من النظام.إدارة.EventArrivedEventArgs الكائن ؟

StackOverflow https://stackoverflow.com/questions/2134121

  •  22-09-2019
  •  | 
  •  

سؤال

أنا باستخدام النظام.إدارة.ManagementEventWatcher للحصول على معرف العملية والقابلة للتنفيذ في مسار بدأ العملية:

private void startWatcher_EventArrived(Object sender, EventArrivedEventArgs e)
{
    String processID = e.NewEvent.Properties["ProcessID"].Value.ToString();

    var searcher = new ManagementObjectSearcher(new WqlObjectQuery(String.Format("Select ExecutablePath from Win32_Process where ProcessID = {0}", processID)));

    ManagementObject managementObject = null;
    foreach (ManagementObject obj in searcher.Get())
    {
        managementObject = obj;
        break;
    }

    Console.WriteLine(managementObject["ExecutablePath"]);
}

باستخدام هذا WQL الاستعلام:

حدد ExecutablePath من Win32_ProcessStartTrace

هل هناك طريقة يمكنني تجنب القيام الكائن البحث, ولكن لا يزال الحصول على ExecutionPath ، وذلك باستخدام ما هو متاح بالفعل في EventArrivedEventArgs الكائن ؟

كل ما احتاجه هو ProcessID و ExecuatblePath لكل عملية جديدة أن يبدأ.هذا هو أبسط طريقة للحصول على ذلك ؟

هل كانت مفيدة؟

المحلول

لا ما عليك هو جيدة كما يحصل.الخصائص المتوفرة مدرجة هنا...

نصائح أخرى

أعتقد أن هذه المادة يمكن أن تساعدك: باستخدام WMI لمراقبة عملية إنشاء, حذف و تعديل .صافي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top