Здравствуйте, Black_, Вы писали:
Кратко: Process.GetProcesses(), Process.Modules, ProcessModule.FileName.
Точнее:
using System;
using System.Diagnostics;
namespace Temp2005
{
class Program
{
static Process FindProcess(string fileName)
{
foreach (Process process in Process.GetProcesses())
{
Console.WriteLine(process.ProcessName);
Console.WriteLine("---------------------------");
try
{
foreach (ProcessModule module in process.Modules)
{
Console.WriteLine(module.FileName);
if (module.FileName.ToLower().IndexOf(fileName.ToLower()) >= 0)
{
return process;
}
}
}
catch (Exception)
{
Console.WriteLine("Access denied");
}
Console.WriteLine();
}
throw new Exception(string.Format("Couldn't find process for module {0}", fileName));
}
[STAThread]
static void Main()
{
try
{
Console.WriteLine(FindProcess("iexplore.exe"));
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Здравствуйте, Black_, Вы писали:
using System;
using System.Management;
class Class1
{
[STAThread]
static void Main(string[] args)
{
string queryString = "Win32_Process";
string condition = "Name=\'Opera.exe\'";
SelectQuery query = new SelectQuery(queryString, condition);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection processes = searcher.Get();
foreach (ManagementObject obj in processes)
{
Console.WriteLine(obj["ProcessID"]);
Console.WriteLine(obj["Name"]);
}
}
}