Определить путь запущенной программы - C#
Формулировка задачи:
Добрый вечер.
Подскажите пожалуйста, как определить откуда были запущены программы.
Раньше данный код работал
Сейчас программа выдает ошибку в item.MainModule - в отладчике нет данных
Может есть другой способ?
foreach (var item in Process.GetProcesses()) { if (item.ProcessName == "info") { if (pach_info == item.MainModule.FileName) { return IS_QUIK = 1; } } }
Решение задачи: «Определить путь запущенной программы»
textual
Листинг программы
using System.Diagnostics; using System.Linq; using System.Management; namespace Process02 { class Program { public static void Main() { string Programm = "info"; foreach (var item in Process.GetProcesses().Where(n => n.ProcessName == Programm)) { int Id = item.Id; string s = GetProcessPath(Id); } } public static string GetProcessPath(int processId) { string MethodResult = ""; try { string Query = "SELECT ExecutablePath FROM Win32_Process WHERE ProcessId = " + processId; using (ManagementObjectSearcher mos = new ManagementObjectSearcher(Query)) { using (ManagementObjectCollection moc = mos.Get()) { string ExecutablePath = (from mo in moc.Cast<ManagementObject>() select mo["ExecutablePath"]).First().ToString(); MethodResult = ExecutablePath; } } } catch //(Exception ex) { //ex.HandleException(); } return MethodResult; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д