Trafic

graph
 10MB/s* 
 
 0
* the scale is based on last 75 values

CPU Usage (code)

  • Option Strict On
  • Imports System.ComponentModel
  • Imports System.ComponentModel.Design.Serialization
  • <ToolboxBitmap(GetType(GrahProc), "GrahProc.bmp")> _
  • Public Class GrahProc
  • Inherits System.Windows.Forms.UserControl
  • #Region "Declaration"
  • Dim _Graph_BackColor As Color = Color.Black
  • Dim _Graph_GridColor As Color = Color.SeaGreen
  • Dim _Graph_GridColorPen As Pen = Pens.SeaGreen
  • Dim _Graph_GraphColor As Color = Color.Lime
  • Dim _Graph_GraphColorPen As Pen = Pens.Lime
  • Dim _Graph_BorderStyle As BorderStyle = Windows.Forms.BorderStyle.FixedSingle
  • Dim _Graph_Start As Boolean
  • Dim _Graph_Width As Integer = 100
  • Dim _Graph_Height As Integer = 24
  • Dim _Graph_Interval As Integer = 1000
  • Dim _Graph_QuaterSize As Short = 12
  • Dim _Graph_Licence As Boolean = True
  • Dim _Graph_Serial As String = CStr(My.Computer.Registry.GetValue _
  • ("HKEY_LOCAL_MACHINE\SOFTWARE\Need-Soft\GraphProc", _
  • "Serial", Nothing))
  • Dim Var_Points() As Point 'tableau qui contient les coordonées du graph
  • Dim Yy As Integer = 0 'variable pour gérer le décalage du quadrillage
  • Dim frmAbout_Form As New frmAbout
  • Dim Var_Process As System.Diagnostics.Process
  • Dim Var_TmpProc01 As String = "0"
  • Dim Var_TmpProc02 As String
  • Dim Var_TmpMach1 As String = "0"
  • Dim Var_TmpMach2 As String
  • Dim Var_PercentProc As Integer 'valeur en % d'utilisation du processeur
  • Dim Var_CountProc As Integer = Environment.ProcessorCount 'nombre de processeur(s)
  • Dim Var_Tag1 As Short = 0
  • #End Region
  • #Region "Propiété"
  • Public Property Graph_BorderStyle() As BorderStyle
  • Get
  • Return _Graph_BorderStyle
  • End Get
  • Set(ByVal value As BorderStyle)
  • Select Case value
  • Case Windows.Forms.BorderStyle.Fixed3D
  • Me.PnlProc.BorderStyle = Windows.Forms.BorderStyle.Fixed3D
  • _Graph_BorderStyle = Windows.Forms.BorderStyle.Fixed3D
  • Case Windows.Forms.BorderStyle.FixedSingle
  • Me.PnlProc.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
  • _Graph_BorderStyle = Windows.Forms.BorderStyle.FixedSingle
  • Case Windows.Forms.BorderStyle.None
  • Me.PnlProc.BorderStyle = Windows.Forms.BorderStyle.None
  • _Graph_BorderStyle = Windows.Forms.BorderStyle.None
  • End Select
  • End Set
  • End Property
  • Public Property Graph_BackColor() As Color
  • Get
  • Return _Graph_BackColor
  • End Get
  • Set(ByVal value As Color)
  • _Graph_BackColor = value
  • PnlProc.BackColor = value
  • End Set
  • End Property
  • Public Property Graph_GridColor() As Color
  • Get
  • Return _Graph_GridColor
  • End Get
  • Set(ByVal value As Color)
  • _Graph_GridColor = value
  • _Graph_GridColorPen = New Pen(_Graph_GridColor)
  • End Set
  • End Property
  • Public Property Graph_GraphColor() As Color
  • Get
  • Return _Graph_GraphColor
  • End Get
  • Set(ByVal value As Color)
  • _Graph_GraphColor = value
  • _Graph_GraphColorPen = New Pen(_Graph_GraphColor)
  • End Set
  • End Property
  • Public Property Graph_Interval() As Integer
  • Get
  • Return _Graph_Interval
  • End Get
  • Set(ByVal Value As Integer)
  • _Graph_Interval = Value
  • If _Graph_Interval > 60000 Then
  • _Graph_Interval = 60000
  • MsgBox("The value must be less 60000.", MsgBoxStyle.Information, "Need-Soft")
  • ElseIf _Graph_Interval < 100 Then
  • _Graph_Interval = 100
  • MsgBox("The value must be more 99.", MsgBoxStyle.Information, "Need-Soft")
  • End If
  • Timer1.Interval = Value
  • End Set
  • End Property
  • Public Property Graph_QuaterSize() As Short
  • Get
  • If _Graph_QuaterSize <= 3 Then
  • _Graph_QuaterSize = 3
  • End If
  • Return _Graph_QuaterSize
  • End Get
  • Set(ByVal Value As Short)
  • _Graph_QuaterSize = Value
  • End Set
  • End Property
  • Public Property Graph_Start() As Boolean
  • Get
  • Return _Graph_Start
  • End Get
  • Set(ByVal value As Boolean)
  • Me.Timer1.Enabled = value
  • If value = False Then S_PnlClear()
  • End Set
  • End Property
  • #End Region
  • #Region "Function"
  • Private Sub GraphProc_Resize(ByVal sender As Object, _
  • ByVal e As System.EventArgs) _
  • Handles Me.Resize
  • Init_GraphProc()
  • End Sub ' Contrôle au redimensionnement du contrôle
  • Protected Sub Init_GraphProc()
  • Me.PnlProc.Height = Me.Height 'on ajuste la taille
  • Me.PnlProc.Width = Me.Width 'du panel à la taille du controle
  • _Graph_Width = Me.Width
  • _Graph_Height = Me.Height
  • Try
  • Var_Process = System.Diagnostics.Process.GetCurrentProcess
  • Catch excep As Exception
  • Exit Try
  • End Try
  • If _Graph_BorderStyle = Windows.Forms.BorderStyle.Fixed3D Then 'la gargeur du graph varie
  • _Graph_Width = _Graph_Width - 3 'en fonction du style de la bordure
  • _Graph_Height = _Graph_Height - 3
  • ElseIf Graph_BorderStyle = Windows.Forms.BorderStyle.FixedSingle Then
  • _Graph_Width = _Graph_Width - 1
  • _Graph_Height = _Graph_Height - 1
  • End If
  • PnlProc.BackColor = _Graph_BackColor
  • ReDim Var_Points(_Graph_Width)
  • For u As Integer = 0 To _Graph_Width 'initialisation du tableau des coordonnées du graph
  • Var_Points(u).X = (u - 1)
  • Var_Points(u).Y = _Graph_Height
  • Next
  • _Graph_Serial = CStr(My.Computer.Registry.GetValue _
  • ("HKEY_LOCAL_MACHINE\SOFTWARE\Need-Soft\GraphProc", _
  • "Serial", Nothing))
  • If Me._Graph_Serial = Nothing Then
  • Me.frmAbout_Form.ShowDialog()
  • End If
  • End Sub 'initialise la taille du graph et la couleur de fond
  • Protected Sub S_Pnl()
  • Try
  • Dim Graphic As System.Drawing.Graphics = PnlProc.CreateGraphics
  • Dim I, Y, X As Integer
  • Yy = Yy - 1
  • If Yy < -_Graph_QuaterSize Then Yy = -1
  • Y = Yy
  • X = -1
  • Graphic.Clear(_Graph_BackColor) ' on efface le panel
  • For I = 0 To CInt(_Graph_Height / _Graph_QuaterSize) ' boucle pour tracer les traits verticaux
  • X = X + _Graph_QuaterSize
  • If X > _Graph_Height Then Exit For
  • Graphic.DrawLine(_Graph_GridColorPen, 1, X, _Graph_Width, X)
  • Next
  • For I = 0 To CInt(_Graph_Width / (_Graph_QuaterSize)) ' boucle pour tracer les traits horizontaux
  • Y = Y + _Graph_QuaterSize
  • If Y > _Graph_Width Then Exit For
  • Graphic.DrawLine(_Graph_GridColorPen, Y, 0, Y, _Graph_Height)
  • Next
  • For u As Integer = 0 To (_Graph_Width - 1) 'boucle pour décaler le graph de 1px sur la gauche
  • Var_Points(u) = Var_Points(u + 1)
  • Var_Points(u).X = (u - 1)
  • Next u
  • Var_Points((_Graph_Width - 1)).Y = CInt((100 - Func_Proc()) / 100 * _Graph_Height)
  • Var_Points((_Graph_Width - 1)).X = _Graph_Width
  • Graphic.DrawLines(_Graph_GraphColorPen, Var_Points)
  • Graphic.Dispose()
  • Catch excep As Exception
  • Exit Sub
  • End Try
  • End Sub 'dessine le graph complet, fond, quadrillage et graph
  • Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  • S_Pnl()
  • End Sub 'timer, marche arret, intervalle
  • Protected Sub S_PnlClear()
  • Try
  • Dim Graphic As System.Drawing.Graphics = PnlProc.CreateGraphics
  • Dim I, Y, X As Integer
  • Yy = Yy - 1
  • If Yy < -_Graph_QuaterSize Then Yy = -1
  • Y = Yy
  • X = -1
  • Graphic.Clear(_Graph_BackColor) ' on efface le panel
  • For I = 0 To CInt(_Graph_Height / _Graph_QuaterSize) ' boucle pour tracer les traits verticaux
  • X = X + _Graph_QuaterSize
  • If X > _Graph_Height Then Exit For
  • Graphic.DrawLine(_Graph_GridColorPen, 1, X, _Graph_Width, X)
  • Next
  • For I = 0 To CInt(_Graph_Width / (_Graph_QuaterSize)) ' boucle pour tracer les traits horizontaux
  • Y = Y + _Graph_QuaterSize
  • If Y > _Graph_Width Then Exit For
  • Graphic.DrawLine(_Graph_GridColorPen, Y, 0, Y, _Graph_Height)
  • Next
  • Graphic.Dispose()
  • Catch excep As Exception
  • Exit Sub
  • End Try
  • End Sub 'a l'arret du timer on redessine le graph avec le fond et le quadrillage
  • Function Func_Proc() As Integer
  • Try
  • Var_TmpProc02 = Split(Var_Process.TotalProcessorTime.ToString, ":")(2)
  • Var_TmpProc02 = CStr(CDbl((Split(Var_TmpProc02, ".")(0) & Microsoft.VisualBasic.Left(Split(Var_TmpProc02, ".")(1), 3))) / Var_CountProc)
  • Var_TmpMach2 = Environment.TickCount.ToString
  • If Var_TmpMach1 = Var_TmpMach2 Then
  • Return Var_PercentProc
  • Exit Function
  • End If
  • Var_PercentProc = CInt(Math.Round(((CDbl(Var_TmpProc02) - CDbl(Var_TmpProc01)) / (CDbl(Var_TmpMach2) - CDbl(Var_TmpMach1))) * 100))
  • Var_TmpProc01 = Var_TmpProc02
  • Var_TmpMach1 = Var_TmpMach2
  • If Var_PercentProc < 0 Then
  • Var_PercentProc = 0
  • ElseIf Var_PercentProc > 100 Then
  • Var_PercentProc = 100
  • End If
  • Return Var_PercentProc
  • Catch excep As Exception
  • Return Var_PercentProc
  • End Try
  • End Function
  • #End Region
  • Private Sub PnlProc_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles PnlProc.DoubleClick
  • Me.frmAbout_Form.ShowDialog()
  • End Sub
  • End Class