- add fileName and isSameExecutable

master
Simon G 5 years ago
parent 2231a47beb
commit ed9aa55ed3
  1. 5
      Lib.ProcessManaging/Interfaces/IObservedProcess.cs
  2. 29
      Lib.ProcessManaging/ObservedProcess.cs

@ -2,16 +2,17 @@
// Created: 2021-04-16
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System;
using System.Diagnostics;
namespace Lib.ProcessManaging.Interfaces
{
public interface IObservedProcess : IDisposable
public interface IObservedProcess
{
string Name { get; }
int Id { get; }
string FileName { get; }
bool EqualsProcess(Process process);
bool IsSameExecutable(IObservedProcess observedProcess);
}
}

@ -9,15 +9,32 @@ namespace Lib.ProcessManaging
{
public class ObservedProcess : IObservedProcess
{
private readonly Process _process;
public ObservedProcess(Process process)
{
Name = process.ProcessName;
Id = process.Id;
FileName = TryGetFileName(process);
}
public ObservedProcess(Process process) => _process = process;
public string Name { get; }
public int Id { get; }
public string FileName { get; }
public string Name => _process.ProcessName;
public int Id => _process.Id;
public bool EqualsProcess(Process process) => Id == process.Id;
public bool IsSameExecutable(IObservedProcess observedProcess) => FileName.Equals(observedProcess.FileName);
public bool EqualsProcess(Process process) => _process.Id == process.Id;
private string TryGetFileName(Process process)
{
try
{
return process.MainModule?.FileName ?? "";
}
catch
{
// ignored
}
public void Dispose() => _process.Dispose();
return "";
}
}
}
Loading…
Cancel
Save