Hallo Community
Ein bekannter von mir hat mich darauf angesprochen, mal ein Tool zu schreiben welches den Status von Servern testet. Also er legt die Server fest die er haben will (z.B. google.de) und im Programm wird dann halt getestet ob der gewünschte Server online oder offline ist. Ich bin soweit das man Server hinzufügen kann (werden in .ini Datei gespeichert) und auch die Anzahl der Server ausgelesen wird. Da diese Anzahl unbekannt ist habe ich ein Listview gemacht, in das je nach Anzahl der Einträge(in der .ini) ein neues Item mit dem Namen angelegt wird. Diese Server(Items) sollen nun wie oben beschrieben auf den Status getestet und eingefärbt (grün=online, rot=offline) werden. Mein Problem ist jetzt das ich nicht weiß ob das praktisch ist wie ich es gemacht hab und das ich mit dem einfärben Probleme hab da ich keine Ahnung hab wie ich die Items ansprechen kann/soll.
Mein bisheriger Code:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <ListviewConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <GuiListView.au3>
TCPStartup()
[/autoit] [autoit][/autoit] [autoit]#Region Gui
$mainw = GUICreate("Serverstatus", 248, 318, 192, 142)
$mnu_file = GUICtrlCreateMenu("File")
$mnu_file_test = GUICtrlCreateMenuItem("test", $mnu_file)
$mnu_file_close = GUICtrlCreateMenuItem("Close", $mnu_file)
$mnu_edit = GUICtrlCreateMenu("Edit")
$mnu_edit_conf = GUICtrlCreateMenuItem("Preferences", $mnu_edit)
$mnu_help = GUICtrlCreateMenu("?")
$lst_server = GUICtrlCreateListView("Server", 10, 10, 228, 278, $LVS_SORTASCENDING)
_GUICtrlListView_SetColumn($lst_server, 0, "Server", 220)
GUISetState(@SW_SHOW, $mainw)
[/autoit] [autoit][/autoit] [autoit]$confw = GUICreate("Preferences", 500, 425)
$tab_conf = GUICtrlCreateTab(10, 10, 480, 405)
$tab_conf_servers = GUICtrlCreateTabItem("Servers")
GUICtrlCreateGroup("Server Hinzufügen", 30, 35, 135, 185)
$lbl_name = GUICtrlCreateLabel("Name:", 40, 60)
$inp_name = GUICtrlCreateInput("", 50, 75, 100, 20)
$lbl_adresse = GUICtrlCreateLabel("Adresse:", 40, 105)
$inp_adresse = GUICtrlCreateInput("", 50, 120, 100, 20)
$lbl_port = GUICtrlCreateLabel("Port:", 40, 145)
$inp_port = GUICtrlCreateInput("", 50, 160, 100, 20)
$btn_addserver = GUICtrlCreateButton("Add", 70, 185, 50)
$lst_servers = GUICtrlCreateList("", 180, 40, 150, 190)
$btn_delete = GUICtrlCreateButton("Löschen", 205, 240)
#EndRegion
[/autoit] [autoit][/autoit] [autoit]$read1 = IniReadSectionNames("conf.ini")
$anzahl = UBound($read1)
$i = 1
For $i = 2 to $anzahl-1
GUICtrlCreateListViewItem($read1[$i], $lst_server)
GUICtrlSetData($lst_servers, $read1[$i] & "|")
Next
While 1
$msg = GUIGetMsg(1)
Switch $msg[1]
Case $mainw
Switch $msg[0]
Case $GUI_EVENT_CLOSE
TCPShutdown()
Exit
Case $mnu_file_close
TCPShutdown()
Exit
Case $mnu_edit_conf
GUISetState(@SW_SHOW, $confw)
Case $mnu_file_test
_ArrayDisplay($read1)
MsgBox(0, "", $read1[2])
EndSwitch
Case $confw
Switch $msg[0]
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $confw)
Case $btn_addserver
$name = GUICtrlRead($inp_name)
$adresse = GUICtrlRead($inp_adresse)
$port = GUICtrlRead($inp_port)
$read2 = IniReadSectionNames("conf.ini")
$count = UBound($read2)-1
IniWrite("conf.ini", $name, "adresse", $adresse)
IniWrite("conf.ini", $name, "port", $port)
GUICtrlSetData($inp_name, "")
GUICtrlSetData($inp_adresse, "")
GUICtrlSetData($inp_port, "")
Case $btn_delete
$read3 = GUICtrlRead($lst_servers)
IniDelete("conf.ini", $read3)
EndSwitch
EndSwitch
WEnd
schonmal Danke im vorraus
Mfg Requion