// Author: Gockner, Simon // Created: 2021-04-23 // Copyright(c) 2021 SimonG. All Rights Reserved. using System.Diagnostics; using Lib.ProcessManaging.Interfaces; namespace Lib.ProcessManaging { public class ObservedProcess : IObservedProcess { public ObservedProcess(Process process) { Name = process.ProcessName; Id = process.Id; FileName = TryGetFileName(process); } public string Name { get; } public int Id { get; } public string FileName { get; } public bool EqualsProcess(Process process) => Id == process.Id; public bool IsSameExecutable(IObservedProcess observedProcess) => FileName.Equals(observedProcess.FileName); private string TryGetFileName(Process process) { try { return process.MainModule?.FileName ?? ""; } catch { // ignored } return ""; } } }