none
הוצאת הערך של COMMANDLINE מה PROCESS RRS feed

  • שאלה

  • כשעוברים על רשימת התהליכים שרצים במחשב, יש אפשרות להוציא גם את ה COMMAND LINE

    מצאתי את הקוד הבא :

     protected static string GetCoomandLineForProcess(string processName)
    
     {
    
      string result = "";
    
      string wmiQuery = string.Format("select * from Win32_Process where Name='{0}'", processName);
    
      ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
    
      
    
      ManagementObjectCollection retObjectCollection = searcher.Get();
    
      foreach (ManagementObject retObject in retObjectCollection)
    
      {
    
    
    
       result = retObject["CommandLine"]==null ? "" : retObject["CommandLine"].ToString();
    
      }
    
      return result;
    
     }
    
    

    הבעיה שהוא לא מראה מה COMMAND LINE עבור אף אחד מהתהליכים למישהו יש רעיון למה<


    מדובר על WIN7
    יום חמישי 07 יולי 2011 11:17

כל התגובות

  • בדקתי כרגע והקוד שלך עובד, בתנאי שמעבירים פרמטר נכון בתור processName.

    למשל, נסה להריץ Notepad ואז לתת processName="Notepad.exe".

     

    סשה


    Sasha Goldshtein | http://blogs.microsoft.co.il/blogs/sasha
    שבת 09 יולי 2011 07:40
  • היי,

    אשמח אם תוכל/י לעדכן אותנו בסטטוס השאלה שלך.

     

    במידה וקיבלת תשובה מתאימה לשאלתך, יש לסמן את התשובה המתאימה ע"י לחיצה על "סמן כתשובה" ליד סימון ה V הירוק

    אם לא קיבלת תשובה, מומלץ לספק פרטים נוספים אודות הבעיה, פרטי לוג, צילומי מסך וכו'

    על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה.


    אם תגובתי פתרה את בעייתך - לחץ/י, על "סמן כתשובה" ליד סימן ה V הירוק.

    על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה
    מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של Microsoft. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.
    יום ראשון 10 יולי 2011 07:58
  • ניסיתי את זה, אבל אני עדין לא מקבל תשובה כלשהיא.

    על איזה חלונות אתה עובד?

    אני על 7 ורץ כ ADMINISTRATOR

    יום ראשון 10 יולי 2011 08:49
  • לא ברור לי למה העניין כל כך מסובך, וב VBSCRIPT כל כך פשוט, לדוגמא אני רוצה למצוא את ה PID של תהליך לפי נתיב הקובץ אני עושה פשוט :

    strDllPath = "D:\Production\myservice.exe"
    
    Set objSWBemServices = GetObject("winmgmts:root\cimv2")
    
    Set objDllFile = objSWBemServices.Get( "CIM_DataFile.Name='" & strDllPath & "'")
    
    Set colProcesses = objDllFile.Associators_( "CIM_ProcessExecutable")
    
    For Each objProcess In colProcesses
    WScript.Echo objDllFile.Name,objProcess.Name, objProcess.ProcessId
    Next
    איך אני עושה אותו הדבר ב C#?

    יום שני 11 יולי 2011 06:34