FrymasterVB/DWPRMON.CLS.md

2.1 KiB

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