/Chapter.Net.Processes

Chapter.Net.Processes brings access and handlers to local processes and assemblies.

Primary LanguageC#MIT LicenseMIT

logo

Chapter.Net.Processes Library

Overview

Chapter.Net.Processes brings access and handlers to local processes and assemblies.

Features

  • IAssemblyReader: Reads data from the current executable.
  • IProcessHandler: Birngs features to work with processes.
  • Wrappers and Interfaces: All methods are available static, but also with an interface and wrapper class for mocking.

Getting Started

  1. Installation:

    • Install the Chapter.Net.Processes library via NuGet Package Manager:
    dotnet add package Chapter.Net.Processes
  2. IAssemblyReader

    • Usage
    public class ViewModel
    {
        public string GetVersion()
        {
            var version = AssemblyReader.GetExeVersion();
            return $"v{version.ToString(2)}";
        }
    }
    public class ViewModel
    {
        private readonly IAssemblyReader _assemblyReader;
    
        public ViewModel(IAssemblyReader assemblyReader)
        {
            _assemblyReader = assemblyReader;
        }
    
        public string GetVersion()
        {
            var version = _assemblyReader.GetExeVersion();
            return $"v{version.ToString(2)}";
        }
    }
  3. IProcessHandler

    • Usage
    public class ViewModel : ObservableObject
    {
        public void ChangeSetting()
        {
            // Apply new setting
    
            // Restart application
            ProcessHandler.Restart(4);
        }
    }
    public class Bootstrapper
    {
        public void CheckSingleInstance()
        {
            var other = ProcessHandler.GetSimilarProcess();
            if (other != null)
            {
                ProcessHandler.BringInFront(other);
                Application.Current.Shutdown();
            }
        }
    }
    public class ViewModel : ObservableObject
    {
        private readonly IProcessHandler _processHandler;
    
        public ViewModel(IProcessHandler processHandler)
        {
            _processHandler = processHandler;
        }
    
        public void ChangeSetting()
        {
            // Apply new setting
    
            // Restart application
            _processHandler.Restart(4);
        }
    }
    public class Bootstrapper
    {
        private readonly IProcessHandler _processHandler;
    
        public Bootstrapper(IProcessHandler processHandler)
        {
            _processHandler = processHandler;
        }
    
        public void CheckSingleInstance()
        {
            var other = _processHandler.GetSimilarProcess();
            if (other != null)
            {
                _processHandler.BringInFront(other);
                Application.Current.Shutdown();
            }
        }
    }

Links

License

Copyright (c) David Wendland. All rights reserved. Licensed under the MIT License. See LICENSE file in the project root for full license information.