What have i done so far:
Dim processesList As String 'Containts initial processes list.
Dim processActivity As String 'Containts all opened / closed processes.
Dim processesAtStart As New ArrayList 'Original Processes List as ArrayList. (Used to Compare)
Dim processesCheck As New ArrayList 'Latest Processes List as ArrayList. (Used to Compare)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim proc As New Process
For Each proc In Process.GetProcesses
Try
processesList = processesList + proc.MainModule.ModuleName + " - " + proc.MainModule.FileName + ControlChars.NewLine
processesAtStart.Add(proc.MainModule.ModuleName + " - " + proc.MainModule.FileName)
Catch ex As Exception
processesList = processesList + proc.ProcessName + ControlChars.NewLine
processesAtStart.Add(proc.ProcessName)
End Try
Next
proc.Dispose()
End Sub
Public Sub processCheck()
'Gets latest processes list and compares it to initial list.
processesCheck.Clear()
Dim proc As New Process
For Each proc In Process.GetProcesses
Try
processesCheck.Add(proc.MainModule.ModuleName + " - " + proc.MainModule.FileName)
Catch ex As Exception
processesCheck.Add(proc.ProcessName)
End Try
Next
proc.Dispose()
'Convert list into array to be compared
Dim latestProcesses() As String = DirectCast(processesCheck.ToArray(GetType(String)), String())
Dim initialProcesses() As String = DirectCast(processesAtStart.ToArray(GetType(String)), String())
'If process is closed remove from list
For Each item As String In initialProcesses
If (Array.IndexOf(latestProcesses, item) = -1) Then
processesAtStart.Remove(item)
End If
Next
'Find Opened processes
For Each item As String In latestProcesses
If (Array.IndexOf(initialProcesses, item) = -1) Then
processActivity = processActivity + ControlChars.NewLine + "Opened : " + item
processesAtStart.Add(item)
End If
Next
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
processCheck()
TextBox1.Text = processActivity
End Sub
Problems:
1.If the same process is opened again at the same time, it won't notify me
2.resource eater (added at 500 ms and takes about 5-10% CPU of a quad core and over 25 mb RAM)

New Topic/Question
Reply



MultiQuote




|