|
|
|
|
@ -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 ""; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |