#include <GUIConstants.au3>
#include <Array.au3>
#include <GUIListView.au3>


GUICreate( "Prozess-Manager", 500, 500 )
	$ListView_id = GUICtrlCreateListView( " Prozess                                | PID             ", 10, 10, 250, 470 )
	
	$menu_datei = GUICtrlCreateMenu( "Datei" )
	$menuitem_exit = GUICtrlCreateMenuitem( "Beenden", $menu_datei )
	
	$menu_questionmark = GUICtrlCreateMenu( "?" )
	$menuitem_about = GUICtrlCreateMenuitem( "About...", $menu_questionmark )
	
GUISetState( @SW_SHOW )


;########################################################################################################################### erste Prozessliste erstellen
$process_list_current = ProcessList()
	For $i = 1 To $process_list_current[0][0]		
		GUICtrlCreateListViewItem( $process_list_current[$i][0] & "|" & $process_list_current[$i][1] , $ListView_id )
	Next
$process_list_save = $process_list_current
;##########################################################################################################################


GUICtrlSetState( $ListView_id, 0 )

While 1

$msg = GUIGetMsg()



	$process_list_current = ProcessList()
;	_GUICtrlListViewDeleteAllItems( $ListView_id )
	For $i = 1 To $process_list_current[0][0]
		_ArraySearch( $process_list_save, $process_list_current[$i][0]  , 1, 0, 0 )
			If @error <> 6 Then
				GUICtrlCreateListViewItem( $process_list_current[$i][0] & "|" & $process_list_current[$i][1] , $ListView_id )
			Else
				_GUICtrlListViewDeleteItem( $ListView_id, $process_list_current[$i][0] & "|" & $process_list_current[$i][1] )
			EndIf

	Next
	$process_list_save = $process_list_current





	Select
		Case $msg = $GUI_Event_Close OR $msg = $menuitem_exit
			Exit
			
		Case $msg = $menuitem_about
			
	EndSelect
	
WEnd