A Windows utility to manage processes and services safely. Stop non-critical items gracefully, restore them with one click, and protect critical system components using exclusion lists. Built with C# and .NET.
Please note, I'm trying to learn C# again after 10 years, so code may be rusty.
-
Intelligent Process/Service Management
- Graceful termination with automatic force-kill fallback
- Predefined safe list (
predefined_safe_list.json) for recommended stoppable items - Protected system processes/services (e.g.,
csrss,EventLog)
-
State Persistence
- Save/load selections via
termination_selections.json - Restore previously stopped items with single-click recovery
- Save/load selections via
-
Admin Mode
- UAC elevation for privileged operations
- Handles "Access Denied" errors for protected resources
-
Diagnostic Tools
- Automatic logging of protected items (
protected_items.log)
- Automatic logging of protected items (
- Windows 10/11
- .NET 6 Desktop Runtime
- Administrator privileges (recommended)
git clone https://github.com/Jaydeeph/Resource-Guardian.git
cd resource-guardian
dotnet build-
Launch Application
Right-click executable → Run as Administrator for full access. -
Main Interface
- Processes Tab: View executable paths and select non-critical processes
- Services Tab: Manage Windows services with display names
- Status Bar: Operation feedback and error messages
-
Core Actions
Button Action 🛑 Stop Selected Gracefully terminate checked items 🔄 Restore Relaunch previously stopped items ⚙️ Settings Configure persistent selections
| File | Purpose |
|---|---|
predefined_safe_list.json |
recommended safe-to-stop items |
termination_selections.json |
User's saved selections |
app.manifest |
Admin privilege configuration |
{
"Processes": ["notepad", "chrome"],
"Services": ["WSearch", "Fax"]
}Issue: "Access Denied" errors
Solution:
- Always run as Administrator
- Check
protected_items.logfor skipped items - Update
predefined_safe_list.jsonif false positives occur
Issue: Selections not persisting
Solution:
- Verify
termination_selections.jsonexists in executable directory - Ensure selections use process/service names not display text
- Fork the repository
- Create feature branch (
git checkout -b feature/improvement) - Commit changes (
git commit -m 'Add feature') - Push to branch (
git push origin feature/improvement) - Open Pull Request
MIT License - See LICENSE for details
- Add screenshots
- Improve GUI
- Add AI suggestions for application/service termination
- Add diagnostic tools
- Add run on startup