All Projects → RainwayApp → Warden

RainwayApp / Warden

Licence: apache-2.0
Warden.NET is an easy to use process management library for keeping track of processes on Windows.

Projects that are alternatives of or similar to Warden

electrocute
See all electron-based applicatios that you have running
Stars: ✭ 13 (-95.91%)
Mutual labels:  task-manager
celery.node
Celery task queue client/worker for nodejs
Stars: ✭ 164 (-48.43%)
Mutual labels:  task-manager
Obsidian-JG-Method
A starter kit that follows how I use Obsidian to manage my goals, tasks, notes, and software development knowledge base.
Stars: ✭ 110 (-65.41%)
Mutual labels:  task-manager
scheduler
Task Scheduler for Laravel applications. UI from scratch
Stars: ✭ 18 (-94.34%)
Mutual labels:  task-manager
routinger
Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.
Stars: ✭ 14 (-95.6%)
Mutual labels:  task-manager
stack-public
A key-value based writer.
Stars: ✭ 19 (-94.03%)
Mutual labels:  task-manager
qinglong
支持python3、javaScript、shell、typescript 的定时任务管理面板(A timed task management panel that supports typescript, javaScript, python3, and shell)
Stars: ✭ 6,944 (+2083.65%)
Mutual labels:  task-manager
Wookteam
WookTeam是一款轻量级的开源在线团队协作工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,知识库管理等工具。
Stars: ✭ 287 (-9.75%)
Mutual labels:  task-manager
reflow
A light-weight lock-free series/parallel combined scheduling framework for tasks. The goal is to maximize parallelism in order to minimize the execution time overall.
Stars: ✭ 23 (-92.77%)
Mutual labels:  task-manager
gotask
A high performance concurrent task manager.
Stars: ✭ 20 (-93.71%)
Mutual labels:  task-manager
ManagedShell
A library for creating Windows shell replacements using .NET.
Stars: ✭ 134 (-57.86%)
Mutual labels:  task-manager
WeekToDoWeb
WeekToDo is a free minimalist weekly planner app focused on privacy. Schedule your tasks and projects with to do lists and a calendar. Available for Windows, Mac, Linux or online.
Stars: ✭ 48 (-84.91%)
Mutual labels:  task-manager
FirefoxTaskMonitor
Show CPU & memory bar, per tab and all tasks. Firefox userChrome script. 🛠️📊
Stars: ✭ 16 (-94.97%)
Mutual labels:  task-manager
bikeshed
Lock free hierarchical work scheduler
Stars: ✭ 78 (-75.47%)
Mutual labels:  task-manager
taskontable
Taskontable is To-Do List & Time keeper on Spreadsheet.
Stars: ✭ 14 (-95.6%)
Mutual labels:  task-manager
taska
Workflow Management for Biomedical exploration
Stars: ✭ 29 (-90.88%)
Mutual labels:  task-manager
unfog.vim
⏱ Vim plugin for Unfog CLI task & time manager.
Stars: ✭ 61 (-80.82%)
Mutual labels:  task-manager
Phulp
The task manager for php
Stars: ✭ 294 (-7.55%)
Mutual labels:  task-manager
Sysmon
Graphical system monitor for linux, including information about CPU, GPU, Memory, HDD/SDD and your network connections. Similar to windows task manager.
Stars: ✭ 256 (-19.5%)
Mutual labels:  task-manager
Task
No description or website provided.
Stars: ✭ 14 (-95.6%)
Mutual labels:  task-manager

Warden.NET

What Is It?

Warden.NET is a simple to use library for managing processes and their states.

Why?

With Rainway we're tasked with launching thousands of different applications from various third parties. To ensure launching games was a smooth process for the user, we needed a reliable way to keep track of game states.

The System.Diagnostics.Process class, while useful, does not have a concept for parent applications; In contrast, Windows itself tracks parents; however, it does not track grandparents, and processes can quickly become orphaned. Process.EnableRaisingEvents while useful, does not support monitoring URI-based launches' lifetime, processes with higher privileges than the calling application, or processes different sessions.

That is why we built Warden.NET.

Getting Started

As of Warden.NET 6.0.0 the calling application is no longer required to be running as Administrator. Some processes may be inaccessible however without those privileges.

Installing

Via Nuget

Install-Package Warden.NET

Enable Process Tracking

To initialize Warden to track processes you launch through it you must first call SystemProcessMonitor.Start(new MonitorOptions()); in the entry point of your application.

If you wish you can optionally subscribe to receive events when all untracked processes have started and stopped execution.

SystemProcessMonitor.OnProcessStarted += (sender, info) => Console.WriteLine(info);
SystemProcessMonitor.OnProcessStopped += (sender, info) => Console.WriteLine(info);

Launching a Process

The WardenProcess class allows you to start processes on the current machine in various context. It supports:

  • Using the operating system shell to start the process.
  • Creating a process as the current interactive user.
  • Launching a Microsoft Store / Universal Windows Platform app.

All of these methods support exit events and process family tree tracking. For more information please review the in-line documentation.

Impersonation

Warden supplies a built-in class, WardenImpersonator, that helps processes created by WardenProcess.StartAsUser execute code as the interactive user.

Notes

If you'd like to contribute we'll be happy to accept pull request. You can find a full example application in the repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].