|
1 | 1 | # Context Menu Editor - Product Requirements Document |
2 | 2 |
|
3 | 3 | ## Overview |
4 | | -Context Menu Editor is a Windows GUI application that allows users to easily manage, edit, and customize context menu items for files, directories, and drives through an intuitive interface. |
| 4 | +Context Menu Editor is a Windows GUI application that allows users to easily manage, edit, and customize context menu items and startup programs through an intuitive interface. |
5 | 5 |
|
6 | | -**Status**: ✅ **v1.0 COMPLETED** - See Implementation Summary section below |
| 6 | +**Status**: 🚧 **v1.1 IN DEVELOPMENT** - Adding Windows Startup Management |
| 7 | +**v1.0**: ✅ COMPLETED - See Implementation Summary section below |
7 | 8 |
|
8 | 9 | ## Product Vision |
9 | | -To provide Windows users with a simple, safe, and comprehensive tool for customizing their right-click context menus without requiring direct registry editing knowledge. |
| 10 | +To provide Windows users with a simple, safe, and comprehensive tool for managing their Windows customizations (context menus and startup programs) without requiring direct registry editing knowledge. |
10 | 11 |
|
11 | 12 | ## Target Audience |
12 | 13 | - **Primary**: Power users and system administrators who want to customize their Windows experience |
@@ -59,6 +60,23 @@ To provide Windows users with a simple, safe, and comprehensive tool for customi |
59 | 60 | - Keyboard shortcuts |
60 | 61 | - Custom context menu creation and editing |
61 | 62 |
|
| 63 | +### 5. Windows Startup Management 🚧 **IN DEVELOPMENT (v1.1)** |
| 64 | +- 🚧 **Separate Tab Interface**: Dedicated "Startup Programs" tab alongside "Context Menus" tab |
| 65 | +- 🚧 **Startup Discovery**: Discovers startup items from: |
| 66 | + - `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run` |
| 67 | + - `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run` |
| 68 | + - `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce` |
| 69 | + - `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce` |
| 70 | +- 🚧 **Enable/Disable Startup Items**: |
| 71 | + - Uses Windows 10+ `StartupApproved\Run` mechanism for disable tracking |
| 72 | + - Visual feedback with disabled items shown in gray italic |
| 73 | + - Requires admin rights for system-level items |
| 74 | +- 🚧 **Delete Startup Items**: Permanently removes from Run/RunOnce with confirmation |
| 75 | +- 🚧 **Backup to .REG File**: Export startup registry entries for restoration |
| 76 | +- 🚧 **Grid Display**: Columns: Enabled (checkbox), Name, Publisher, Command, Location (UserRun/SystemRun/etc) |
| 77 | +- 🚧 **Windows System Filtering**: Filters out built-in Windows startup programs |
| 78 | +- 🚧 **Publisher Detection**: Auto-detects software vendors from common path patterns |
| 79 | + |
62 | 80 | ### 4. Essential Features ✅ **IMPLEMENTED** |
63 | 81 | - ✅ **Column Sorting**: DataGrid supports sorting by clicking any column header |
64 | 82 | - ✅ **Column Width Management**: Menu Text auto-sizes to content, File column takes remaining space |
@@ -110,9 +128,11 @@ To provide Windows users with a simple, safe, and comprehensive tool for customi |
110 | 128 |
|
111 | 129 | ## User Interface Requirements |
112 | 130 |
|
113 | | -### Main Window Layout ✅ **IMPLEMENTED** (Simplified from CCleaner Design) |
114 | | -- ✅ **Single Unified View**: No tabs - single DataGrid with Type column for all context menu types |
115 | | - - **Design Decision**: Simpler, more efficient than tabs. Users can sort by Type to group items. |
| 131 | +### Main Window Layout ✅ **IMPLEMENTED** with 🚧 **Tabs for Separate Features** |
| 132 | +- ✅ **Tab-Based Navigation**: Separate tabs for independent features |
| 133 | + - **Context Menus Tab**: Single unified DataGrid with Type column (File/Directory/Drive/Background) |
| 134 | + - 🚧 **Startup Programs Tab**: Dedicated view for Windows startup management |
| 135 | + - **Design Decision**: Tabs for completely different features (context menus vs. startup), unified view within each feature |
116 | 136 | - ✅ **Data Grid View**: Displays: |
117 | 137 | - **Enabled Column**: Checkbox with INotifyPropertyChanged binding for instant toggle |
118 | 138 | - **Type Column**: Shows File, Directory, Drive, or Background |
@@ -278,4 +298,52 @@ ContextMenuEditor/ |
278 | 298 | - **User Feedback Driven**: Iterated based on actual usage feedback |
279 | 299 |
|
280 | 300 | ## Conclusion |
281 | | -Context Menu Editor v1.0 successfully provides Windows users with a clean, powerful tool to manage their context menus efficiently and safely, eliminating the need for direct registry editing while maintaining full control over the user experience. The application delivers on its core promise with a focus on simplicity, safety, and usability. |
| 301 | +Context Menu Editor v1.0 successfully provides Windows users with a clean, powerful tool to manage their context menus efficiently and safely, eliminating the need for direct registry editing while maintaining full control over the user experience. The application delivers on its core promise with a focus on simplicity, safety, and usability. |
| 302 | + |
| 303 | +--- |
| 304 | + |
| 305 | +## v1.1 Development Notes (In Progress) |
| 306 | + |
| 307 | +### New Feature: Windows Startup Management |
| 308 | + |
| 309 | +**Goal**: Expand the application to manage Windows startup programs, following the same architectural patterns and UI principles as the context menu management. |
| 310 | + |
| 311 | +**Implementation Approach**: |
| 312 | +1. **Separate Tab**: Added "Startup Programs" tab alongside "Context Menus" tab |
| 313 | + - Each tab represents a completely different feature |
| 314 | + - Maintains design principle: unified view within each feature, tabs for separate features |
| 315 | +2. **New Models**: `StartupItem` with properties: Name, Command, Publisher, Location, IsEnabled, RegistryPath |
| 316 | +3. **New Service**: `StartupService` implementing `IStartupService` for registry operations |
| 317 | + - Discovers items from Run and RunOnce keys (User and System level) |
| 318 | + - Enable/Disable using Windows 10+ `StartupApproved` mechanism |
| 319 | + - Delete operations with confirmation |
| 320 | + - Backup to .REG file format |
| 321 | +4. **New ViewModel**: `StartupViewModel` following same pattern as `MainViewModel` |
| 322 | + - ObservableCollection of startup items |
| 323 | + - Enable/Disable/Delete/Backup/Refresh commands |
| 324 | + - Status messages and loading states |
| 325 | +5. **New View**: `StartupView` UserControl with same layout as context menu view |
| 326 | + - DataGrid with columns: Enabled, Name, Publisher, Command, Location |
| 327 | + - Action buttons panel on the right |
| 328 | + - Status bar at bottom |
| 329 | +6. **Consistent Patterns**: Reuses existing infrastructure |
| 330 | + - ViewModelBase for INotifyPropertyChanged |
| 331 | + - RelayCommand for commands |
| 332 | + - Same styling and theming from App.xaml |
| 333 | + - Similar enable/disable/delete workflows |
| 334 | + |
| 335 | +**Registry Locations**: |
| 336 | +- **User Run**: `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` |
| 337 | +- **System Run**: `HKLM\Software\Microsoft\Windows\CurrentVersion\Run` |
| 338 | +- **User RunOnce**: `HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce` |
| 339 | +- **System RunOnce**: `HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce` |
| 340 | +- **Disable Tracking**: `HKCU/HKLM\...\Explorer\StartupApproved\Run` (Windows 10+) |
| 341 | + |
| 342 | +**Testing Status**: 🚧 In Progress |
| 343 | +- ✅ Code compiles successfully |
| 344 | +- ⏳ Runtime testing with admin privileges required |
| 345 | +- ⏳ Verify enable/disable functionality |
| 346 | +- ⏳ Test delete operations |
| 347 | +- ⏳ Validate backup/restore workflow |
| 348 | + |
| 349 | +**Version**: This will be released as v1.1 using semantic versioning (MINOR) marker in commit message. |
0 commit comments