FrymasterVB/DWPRMON.CLS.md

86 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2025-01-08 17:02:29 -06:00
# DWPRMON.CLS - Process Monitor Class Documentation
## Overview
DWPRMON.CLS provides process monitoring capabilities for DataWindow applications. It allows tracking and managing DataWindow processes during runtime.
## Class Properties
- `ProcessID` - Current process identifier
- `ProcessName` - Name of the monitored process
- `StartTime` - Process start timestamp
- `Status` - Current process status (Active/Inactive)
- `MemoryUsage` - Current memory consumption
- `CPUUsage` - CPU utilization percentage
## Methods
### Constructor
Constructor( as_processname )
Initializes a new process monitor instance
- Parameters:
- `as_processname`: String - Name of process to monitor
### StartMonitoring()
StartMonitoring()
Begins monitoring the specified process
- Returns: Boolean - True if monitoring started successfully
### StopMonitoring()
StopMonitoring()
Stops monitoring the current process
- Returns: Boolean - True if monitoring stopped successfully
### GetProcessMetrics()
GetProcessMetrics()
Retrieves current process performance metrics
- Returns: Structure containing:
- CPU usage
- Memory usage
- Thread count
- Handle count
### IsProcessActive()
IsProcessActive()
Checks if monitored process is still running
- Returns: Boolean - True if process is active
## Events
- `ProcessStarted` - Fired when monitoring begins
- `ProcessStopped` - Fired when monitoring ends
- `MetricsUpdated` - Fired when new metrics are collected
- `ThresholdExceeded` - Fired when resource usage exceeds defined limits
## Usage Example
// Create monitor instance
DWPRMON lw_monitor
lw_monitor = CREATE DWPRMON("myprocess")
// Start monitoring
lw_monitor.StartMonitoring()
// Check process status
IF lw_monitor.IsProcessActive() THEN
// Process metrics
lst_metrics = lw_monitor.GetProcessMetrics()
END IF
// Stop monitoring
lw_monitor.StopMonitoring()
## Notes
- Requires appropriate system permissions to monitor processes
- Recommended to properly dispose monitor instances when no longer needed
- Can be used to monitor multiple processes simultaneously using separate instances