/* * Copyright (c) 2022 ETH Zürich, Educational Development and Technology (LET) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ using SafeExamBrowser.WindowsApi.Contracts.Events; namespace SafeExamBrowser.WindowsApi.Contracts { /// /// Represents a process and defines its functionality. /// public interface IProcess { /// /// Indicates whether the process has been terminated. /// bool HasTerminated { get; } /// /// The process identifier. /// int Id { get; } /// /// The file name of the process executable. /// string Name { get; } /// /// The original file name of the process executable, if available. /// string OriginalName { get; } /// /// Event fired when the process has terminated. /// event ProcessTerminatedEventHandler Terminated; /// /// Attempts to gracefully terminate the process by closing its main window. This will only work for interactive processes which have a main /// window. Optionally waits the specified amount of time for the process to terminate. Returns true if the process has terminated, /// otherwise false. /// bool TryClose(int timeout_ms = 0); /// /// Attempts to immediately kill the process. Optionally waits the specified amount of time for the process to terminate. Returns true /// if the process has terminated, otherwise false. /// bool TryKill(int timeout_ms = 0); } }