Architecture Overview
Helper tools are small, focused executables that:- Run independently from the main BCU application
- Communicate via command-line interface (CLI)
- Output structured data (typically JSON or XML)
- Can be used standalone in scripts
- Provide isolation for platform-specific code
Helper tools enable BCU to interface with technologies that require separate runtime environments or elevated privileges.
Available Helper Tools
SteamHelper
Manages Steam game detection and uninstallation
StoreAppHelper
Handles Windows Store app operations via PowerShell
WinUpdateHelper
Interfaces with Windows Update for update removal
OculusHelper
Manages Oculus VR application detection
ScriptHelper
Executes custom uninstall scripts
SteamHelper
Handles all Steam-related operations including game detection, metadata extraction, and uninstallation.Features
Game Detection
Game Detection
- Locates Steam installation directory
- Parses
libraryfolders.vdfto find all library locations - Reads app manifest files (
appmanifest_*.acf) - Extracts game metadata (name, ID, size, install date)
Metadata Extraction
Metadata Extraction
- Game/app name and App ID
- Installation directory
- Size on disk
- Last update timestamp
- DLC and workshop content detection
Usage Example
Command Line
Output Format
SteamHelper requires the Steam client to be installed. It reads Steam’s internal manifest files directly.
StoreAppHelper
Provides interface to Windows Store (UWP) applications using PowerShell cmdlets.Features
App Detection
App Detection
Uses PowerShell
Get-AppxPackage cmdlet to query:- All user packages
- System-wide packages
- Provisioned packages
- Package families
App Removal
App Removal
Uses
Remove-AppxPackage cmdlet:- Per-user removal
- All-users removal
- Provisioned package removal (prevents reinstallation)
Usage Example
PowerShell Interface
Output Format
WinUpdateHelper
Interfaces with Windows Update to list and remove installed updates.Features
Update Detection
Update Detection
Queries Windows Update database:
- Installed updates (KB articles)
- Update metadata (title, description, date)
- Update classification (security, feature, driver)
- Update size and installation date
Update Removal
Update Removal
Uses WUSA or DISM to remove updates:
- Generates appropriate removal command
- Handles restart requirements
- Validates removal prerequisites
Usage Example
Command Line
Removal Command Generated
OculusHelper
Manages Oculus VR application detection and metadata extraction.Features
App Detection
App Detection
- Locates Oculus installation directory
- Parses Oculus manifest files
- Extracts VR application metadata
- Identifies installed DLC and add-ons
Metadata Extraction
Metadata Extraction
- Application name and Oculus ID
- Installation directory
- Size on disk
- Version information
- Required Oculus runtime version
Usage Example
Command Line
OculusHelper requires Oculus software to be installed. It reads Oculus library manifests directly.
ScriptHelper
Executes custom uninstall scripts with sandboxing and logging.Features
Script Execution
Script Execution
- Runs PowerShell, batch, or VBScript files
- Provides sandboxed execution environment
- Captures output and exit codes
- Enforces timeout limits
- Logs all operations
Security Features
Security Features
- Script signature validation (optional)
- Execution policy enforcement
- Resource usage limits
- User confirmation for untrusted scripts
Usage Example
Command Line
Helper Communication Protocol
All helpers follow a standard communication protocol:Command-Line Interface
Standard Switches
Exit Codes
Standard Exit Codes
Standard Exit Codes
0- Success1- Invalid arguments2- Item not found3- Permission denied4- Operation failed5- Timeout13- Unexpected error
Output Format
All helpers output structured data:Standard JSON Structure
Integration with BCU
BCU integrates helpers through factory classes:SteamFactory.cs Integration
Standalone Usage
Helpers can be used independently of BCU:- PowerShell
- Batch Script
Using Helpers in PowerShell
Building Helper Tools
Helpers are built as part of the BCU solution:Build Process
Helper tools are .NET console applications targeting the same framework as BCU.
Troubleshooting
Helper Not Found
Helper Not Found
Ensure helper executables are in the same directory as BCUninstaller.exe or in the system PATH.
Permission Denied
Permission Denied
Some helpers require administrator privileges. Run BCU as administrator.
Timeout Errors
Timeout Errors
Increase timeout values in BCU settings for slow operations (large Steam libraries, etc.).
Invalid JSON Output
Invalid JSON Output
Check helper logs in BCU’s log directory for detailed error messages.
Related Topics
Uninstaller Types
Learn about different installer systems BCU supports
Detection Methods
Understand how BCU discovers applications
Architecture
Explore BCU’s overall architecture
