TrayItemSetOnEvent geht nur 1 mal

  • hey,

    ich habe jetzt das grundkonzept zu einem script fertig, das laufend verschiedene ips anpingen soll. während des vorgangs soll man natürlich auch ips hinzufügen/löschen oder die settings ändern können.
    das geht über TrayItems.
    doch leider funzt das nur 1 mal, danach reagiert das programm auf kein einziges trayitem mehr.

    bin mir nicht sicher wo der fehler sein soll:

    Spoiler anzeigen
    [autoit]


    #Include <GuiConstants.au3>
    #include <Array.au3>
    #include <GuiListBox.au3>
    #include <file.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiImageList.au3>
    #Include <WinAPI.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("TrayIconHide", 0)
    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)
    Opt("GuiOnEventMode",1)

    [/autoit] [autoit][/autoit] [autoit]

    FileInstall("No.ico", @ScriptDir & "\Icons\No.ico")
    FileInstall("Yes.ico", @ScriptDir & "\Icons\Yes.ico")

    [/autoit] [autoit][/autoit] [autoit]

    Global $addip, $addname, $anz, $badd, $bclear, $bexit, $BL, $bok, $BR, $bremove, $bsave, $bstandard, $cbtooltip, $cbwindow, $corner, $cornerBL, $cornerBR, $cornerTL, $cornerTR, $count, $DeskX, $DeskY, $error1, $error2, $gui, $GuiIP, $GuiSettings, $h, $i, $Ih, $Iintervall, $ini, $Intervall, $ips, $ips2, $Itimeout, $Iw, $lineIndex, $list, $list2, $pathIPs, $Paused, $ping, $pingip, $SaveIPs, $script, $SectionIP, $Sections, $slider, $state, $timeout, $TL, $tool, $ToolTipEnabled, $TR, $trans, $urllist, $varIP, $w, $WinEnabled, $x, $y

    [/autoit] [autoit][/autoit] [autoit]

    $pathIPs = @ScriptDir & "\Destiny.ini"
    $script = "WhoIsOn RelOadEd"
    $ini = @ScriptDir & "\Settings.ini"
    $intervall = 10000
    $timeout = 4000
    $corner = 3
    $WinEnabled = 1
    $ToolTipEnabled = 1
    $trans = 40
    $w = 300
    $h = 200
    $error1 = 0
    $error2 = 0

    [/autoit] [autoit][/autoit] [autoit]

    $DeskX = @DesktopWidth
    $DeskY = @DesktopHeight

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("!{End}", "_OnExitFunc")
    HotKeySet("!{PAUSE}", "TogglePause")
    HotKeySet("^!g",'_ShowGUI')
    HotKeySet("^!t", "TrayIcon")
    HotKeySet("^!s",'_Settings')
    HotKeySet("^!c", "_Change")

    [/autoit] [autoit][/autoit] [autoit]

    TrayCreateItem("Settings")
    TrayItemSetOnEvent(-1,"_Settings")
    TrayCreateItem("Change IPs")
    TrayItemSetOnEvent(-1,"_Change")
    TrayCreateItem("-")
    TrayCreateItem("Hide/Show")
    TrayItemSetOnEvent(-1,"_ShowGUI")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"_OnExitFunc")

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($ini) Then
    $intervall = IniRead($ini, "Ping", "Intervall", $intervall)
    $timeout = IniRead($ini, "Position", "Timeout", $timeout)
    $corner = IniRead($ini, "Position", "Corner", $corner)
    $WinEnabled = IniRead($ini, "Window", "Enabled", $WinEnabled)
    $w = IniRead($ini, "Window", "Weight", $w)
    $h = IniRead($ini, "Window", "Height", $h)
    $trans = IniRead($ini, "Window", "Transparency", $trans)
    $ToolTipEnabled = IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled)
    Else
    IniWrite($ini, "Ping", "Intervall", $intervall)
    IniWrite($ini, "Ping", "Timeout", $timeout)
    IniWrite($ini, "Position", "Corner", $corner)
    IniWrite($ini, "Window", "Enabled", $WinEnabled)
    IniWrite($ini, "Window", "Weight", $w)
    IniWrite($ini, "Window", "Height", $h)
    IniWrite($ini, "Window", "Transparency", $trans)
    IniWrite($ini, "ToolTip", "Enabled", $ToolTipEnabled)
    EndIf

    If $corner = 1 Then
    $x = 5
    $y = 5
    ElseIf $corner = 2 Then
    $x = $DeskX - $w - 5
    $y = 5
    ElseIf $corner = 3 Then
    $x = $DeskX - $w - 5
    $y = $DeskY - $h - 35
    ElseIf $corner = 4 Then
    $x = 5
    $y = $DeskY -$h - 35
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate($script, $w, $h, $x, $y, $WS_POPUPWINDOW, $WS_EX_TRANSPARENT + $WS_EX_TOOLWINDOW )
    WinSetOnTop($script,'',1)
    WinSetTrans($script,'', (100 - $trans) * 2.55)
    $list2 = _GUICtrlListView_Create($gui,"||", 5, 5, $w - 10, $h - 10)
    _GUICtrlListView_SetColumn($list2, 0, "Name", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 1, "IP", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 2, "Status", 50, 2)

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    If $Sections = 0 Then
    Else
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list2, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $Sections[$i], 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $gui)

    _PingProc()

    [/autoit] [autoit][/autoit] [autoit]

    Func _PingProc()
    While 1
    $count = _GUICtrlListView_GetItemCount($list2)
    For $i = 0 To $count - 1
    $pingip = _GUICtrlListView_GetItemText($list2, $i, 1)
    Ping($pingip, $timeout)
    Next
    Sleep($Intervall)
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Change()

    $GuiIP = GUICreate($script & " Destiny IPs", 345, 310)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ExitSettings")

    [/autoit] [autoit][/autoit] [autoit]

    $list = _GUICtrlListView_Create($GuiIP,"|", 5, 5, 250, 300)
    _GUICtrlListView_SetColumn($list, 0, "Name", 120, 2)
    _GUICtrlListView_SetColumn($list, 1, "IP", 125, 2)

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list, $lineIndex, $Sections[$i], 1)
    ;~ _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    Else
    EndIf

    $badd = GUICtrlCreateButton("&add", 260, 10, 80)
    GUICtrlSetOnEvent(-1, "_AddIP")
    $bremove = GUICtrlCreateButton("&remove", 260, 50, 80)
    GUICtrlSetOnEvent(-1, "_RemoveIP")
    $bclear = GUICtrlCreateButton("&clear", 260, 90, 80)
    GUICtrlSetOnEvent(-1, "_ClearIP")
    $bok = GUICtrlCreateButton("&ok", 260, 280, 80)
    GUICtrlSetOnEvent(-1, "_SaveIP")

    GUISetState(@SW_SHOW, $GuiIP)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _AddIP()
    Do
    $addname = InputBox("Name", "Please enter a name", "", "", 100, 130)
    If @error = 1 Then
    $error1 = 1
    ExitLoop
    Else
    EndIf
    until $addname <> ""
    If $error1 = 1 Then
    Else
    Do
    $addip = InputBox("IP", "Please enter the IP", "", "", 100, 130)
    If @error = 1 Then
    $error2 = 1
    ExitLoop
    Else
    EndIf
    Until StringRegExp($addip, "[0-9]+")
    If $error2 <> 1 Then
    _GUICtrlListView_AddItem($list, $addname)
    _guictrllistview_AddSubItem($list, _GUICtrlListView_GetItemCount($list) - 1, $addip, 1)
    Else
    EndIf
    EndIf
    $error1 = 0
    $error2 = 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _RemoveIP()
    _GUICtrlListView_DeleteItemsSelected($list)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ClearIP()
    _GUICtrlListView_DeleteAllItems($list)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveIP()

    FileDelete($pathIPs)
    $anz = _GUICtrlListView_GetItemCount($list)
    If $anz = 0 Then
    Else
    For $i = 1 To $anz
    IniWrite($pathIPs, _GUICtrlListView_GetItemText($list, $i - 1, 1), _GUICtrlListView_GetItemText($list, $i - 1), "-")
    Next
    EndIf

    GUISetState(@SW_HIDE, $GuiIP)

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list2, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $Sections[$i], 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    Else
    EndIf

    _PingProc()

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Settings()

    $GuiSettings = GUICreate($script & " Settings", 450, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ExitSettings")

    ;ToolTip
    GUICtrlCreateGroup("Tooltip", 5, 5, 135, 60)
    $cbtooltip = GUICtrlCreateCheckbox("Enable ToolTip", 25, 30, 100)
    GUICtrlSetTip(-1, "Enables the ToolTip-Information")
    GUICtrlSetState($cbtooltip, IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled))

    ;ping
    GUICtrlCreateGroup("Ping", 5, 70, 135, 120)
    GUICtrlCreateLabel("Intervall:", 15, 105, 40)
    GUICtrlSetTip(-1, "Time between pings in miliseconds")
    $Iintervall = GUICtrlCreateInput(IniRead($ini, "Ping", "Intervall", $intervall), 60, 100, 50)
    GUICtrlCreateLabel("ms", 115, 105, 20)
    GUICtrlCreateLabel("Timeout:", 15, 140, 40)
    GUICtrlSetTip(-1, "Timeout after no response in miliseconds")
    $Itimeout = GUICtrlCreateInput(IniRead($ini, "Ping", "Timeout", $timeout), 60, 135, 50)
    GUICtrlCreateLabel("ms", 115, 140, 20)

    [/autoit] [autoit][/autoit] [autoit]

    ;weight & height
    GUICtrlCreateGroup("Window", 150, 5, 200, 100)
    $cbwindow = GUICtrlCreateCheckbox("Enable Info-Window", 160, 20, 120)
    GUICtrlSetTip(-1, "Enables the Information-Window on startup")
    GUICtrlSetState($cbwindow, IniRead($ini, "Window", "Enabled", $WinEnabled))
    GUICtrlSetOnEvent($cbwindow, "_DisabelWindow")
    GUICtrlCreateLabel("Weight:", 180, 50, 40)
    GUICtrlSetTip(-1, "Wight of the Information-Window")
    $Iw = GUICtrlCreateInput(IniRead($ini, "Window", "Weight", $w), 220, 45, 50)
    GUICtrlCreateLabel("mm", 275, 50, 20)
    GUICtrlCreateLabel("Height:", 180, 80, 40)
    GUICtrlSetTip(-1, "Hight of the Information-Window")
    $Ih = GUICtrlCreateInput(IniRead($ini, "Window", "Height", $h), 220, 75, 50)
    GUICtrlCreateLabel("mm", 275, 80, 20)
    $slider = GUICtrlCreateSlider(300, 15, 25, 85, $TBS_VERT + $TBS_AUTOTICKS)
    GUICtrlSetTip(-1, "Transparency of the Information-Window")
    GUICtrlSetLimit($slider,100,0)
    GUICtrlSetData($slider,IniRead($ini, "Window", "Transparency", $trans))
    GUICtrlCreateLabel("0", 335, 15, 10, 15)
    GUICtrlCreateLabel("100", 327, 85, 20, 15)

    [/autoit] [autoit][/autoit] [autoit]

    ;corner
    GUICtrlCreateGroup("Corner Position", 150, 110, 200, 80)
    $TL = GUICtrlCreateRadio("Top Left", 160, 125, 60)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $TR = GUICtrlCreateRadio("Top Right", 255, 125, 65)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $BR = GUICtrlCreateRadio("Bottom Right", 255, 160, 80)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $BL = GUICtrlCreateRadio("Bottom Left", 160, 160, 70)
    GUICtrlSetTip(-1, "Position the Information-Window appears")

    [/autoit] [autoit][/autoit] [autoit]

    $corner = IniRead($ini, "Position", "Corner", $corner)
    If $corner = 1 Then
    GUICtrlSetState($TL, 1)
    ElseIf $corner = 2 Then
    GUICtrlSetState($TR, 1)
    ElseIf $corner = 3 Then
    GUICtrlSetState($BR, 1)
    ElseIf $corner = 4 Then
    GUICtrlSetState($BL, 1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;buttons
    $bsave = GUICtrlCreateButton("save", 360, 10, 80)
    GUICtrlSetOnEvent(-1, "_SaveSettings")
    $bstandard = GUICtrlCreateButton("standard", 360, 45, 80)
    GUICtrlSetOnEvent(-1, "_StandardSettings")
    $bexit = GUICtrlCreateButton("exit", 360, 160, 80)
    GUICtrlSetOnEvent(-1, "_ExitSettings")

    GUISetState(@SW_SHOW, $GuiSettings)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveSettings()
    IniWrite($ini, "Ping", "Intervall", GUICtrlRead($Iintervall))
    IniWrite($ini, "Ping", "Timeout", GUICtrlRead($Itimeout))
    IniWrite($ini, "Window", "Enabled", GUICtrlRead($cbwindow))
    IniWrite($ini, "Window", "Weight", GUICtrlRead($Iw))
    IniWrite($ini, "Window", "Height", GUICtrlRead($Ih))
    IniWrite($ini, "Window", "Transparency", GUICtrlRead($slider))
    IniWrite($ini, "ToolTip", "Enabled", GUICtrlRead($cbtooltip))
    $cornerTL = GUICtrlRead($TL)
    $cornerTR = GUICtrlRead($TR)
    $cornerBR = GUICtrlRead($BR)
    $cornerBL = GUICtrlRead($BL)
    If $cornerTL = 1 Then
    IniWrite($ini, "Position", "Corner", "1")
    ElseIf $cornerTR = 1 Then
    IniWrite($ini, "Position", "Corner", "2")
    ElseIf $cornerBR = 1 Then
    IniWrite($ini, "Position", "Corner", "3")
    ElseIf $cornerBL = 1 Then
    IniWrite($ini, "Position", "Corner", "4")
    EndIf

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _StandardSettings()
    GUICtrlSetData($Iintervall, "10000")
    GUICtrlSetData($Itimeout, "4000")
    GUICtrlSetState($cbwindow, 1)
    GUICtrlSetData($Iw, 300)
    GUICtrlSetData($Ih, 200)
    GUICtrlSetData($slider, 40)
    GUICtrlSetState($cbtooltip, 1)
    GUICtrlSetState($TL, 0)
    GUICtrlSetState($TR, 0)
    GUICtrlSetState($BR, 1)
    GUICtrlSetState($BL, 0)
    GUICtrlSetState($Iw, $GUI_ENABLE)
    GUICtrlSetState($Ih, $GUI_ENABLE)
    GUICtrlSetState($slider, $GUI_ENABLE)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ExitSettings()

    GUISetState(@SW_HIDE, $GuiSettings)

    [/autoit] [autoit][/autoit] [autoit]

    $intervall = IniRead($ini, "Ping", "Intervall", $intervall)
    $timeout = IniRead($ini, "Position", "Timeout", $timeout)
    $corner = IniRead($ini, "Position", "Corner", $corner)
    $WinEnabled = IniRead($ini, "Window", "Enabled", $WinEnabled)
    $w = IniRead($ini, "Window", "Weight", $w)
    $h = IniRead($ini, "Window", "Height", $h)
    $trans = IniRead($ini, "Window", "Transparency", $trans)
    $ToolTipEnabled = IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled)

    If $corner = 1 Then
    $x = 5
    $y = 5
    ElseIf $corner = 2 Then
    $x = $DeskX - $w - 5
    $y = 5
    ElseIf $corner = 3 Then
    $x = $DeskX - $w - 5
    $y = $DeskY - $h - 35
    ElseIf $corner = 4 Then
    $x = 5
    $y = $DeskY -$h - 35
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($script, "", $x, $y, $w, $h)
    WinSetTrans($script,'', (100 - $trans) * 2.55)
    _WinAPI_SetWindowPos($list2, 0, 5, 5, $w - 10, $h - 10, $SWP_SHOWWINDOW)
    _GUICtrlListView_SetColumn($list2, 0, "Name", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 1, "IP", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 2, "Status", 50, 2)

    [/autoit] [autoit][/autoit] [autoit]

    _PingProc()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    Func _DisabelWindow()
    If GUICtrlRead($cbwindow) = 1 Then
    GUICtrlSetState($Iw, $GUI_ENABLE)
    GUICtrlSetState($Ih, $GUI_ENABLE)
    GUICtrlSetState($slider, $GUI_ENABLE)
    Else
    GUICtrlSetState($Iw, $GUI_DISABLE)
    GUICtrlSetState($Ih, $GUI_DISABLE)
    GUICtrlSetState($slider, $GUI_DISABLE)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _OnExitFunc()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Tray-Icon
    Func TrayIcon()
    Opt("TrayIconHide", Not Opt("TrayIconHide", "Default"))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Pause
    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip(@ScriptName & ' is paused')
    WEnd
    ToolTip("")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ShowGUI()
    $state = WinGetState('WhoIsOn','')
    If BitAnd($state, 2) Then
    WinSetState('WhoIsOn','',@SW_HIDE)
    ToolTip('',-1,-1,'','',2)
    $tool = 1
    Else
    WinSetState('WhoIsOn','',@SW_SHOW)
    $tool = 0
    EndIf
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    HI,

    meinst du so?

    Spoiler anzeigen
    [autoit]

    #Include <GuiConstants.au3>
    #include <Array.au3>
    #include <GuiListBox.au3>
    #include <file.au3>
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiImageList.au3>
    #Include <WinAPI.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("TrayIconHide", 0)
    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1)
    Opt("GuiOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    FileInstall("No.ico", @ScriptDir & "\Icons\No.ico")
    FileInstall("Yes.ico", @ScriptDir & "\Icons\Yes.ico")

    [/autoit] [autoit][/autoit] [autoit]

    Global $addip, $addname, $anz, $badd, $bclear, $bexit, $BL, $bok, $BR, $bremove, $bsave, $bstandard, $cbtooltip, $cbwindow, $corner, $cornerBL, $cornerBR, $cornerTL, $cornerTR, $count, $DeskX, $DeskY, $error1, $error2, $gui, $GuiIP, $GuiSettings, $h, $i, $Ih, $Iintervall, $ini, $Intervall, $ips, $ips2, $Itimeout, $Iw, $lineIndex, $list, $list2, $pathIPs, $Paused, $ping, $pingip, $SaveIPs, $script, $SectionIP, $Sections, $slider, $state, $timeout, $TL, $tool, $ToolTipEnabled, $TR, $trans, $urllist, $varIP, $w, $WinEnabled, $x, $y

    [/autoit] [autoit][/autoit] [autoit]

    $pathIPs = @ScriptDir & "\Destiny.ini"
    $script = "WhoIsOn RelOadEd"
    $ini = @ScriptDir & "\Settings.ini"
    $Intervall = 10000
    $timeout = 4000
    $corner = 3
    $WinEnabled = 1
    $ToolTipEnabled = 1
    $trans = 40
    $w = 300
    $h = 200
    $error1 = 0
    $error2 = 0

    [/autoit] [autoit][/autoit] [autoit]

    $DeskX = @DesktopWidth
    $DeskY = @DesktopHeight

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("!{End}", "_OnExitFunc")
    HotKeySet("!{PAUSE}", "TogglePause")
    HotKeySet("^!g", '_ShowGUI')
    HotKeySet("^!t", "TrayIcon")
    HotKeySet("^!s", '_Settings')
    HotKeySet("^!c", "_Change")

    [/autoit] [autoit][/autoit] [autoit]

    TrayCreateItem("Settings")
    TrayItemSetOnEvent(-1, "_Settings")
    TrayCreateItem("Change IPs")
    TrayItemSetOnEvent(-1, "_Change")
    TrayCreateItem("-")
    TrayCreateItem("Hide/Show")
    TrayItemSetOnEvent(-1, "_ShowGUI")
    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "_OnExitFunc")

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($ini) Then
    $Intervall = IniRead($ini, "Ping", "Intervall", $Intervall)
    $timeout = IniRead($ini, "Position", "Timeout", $timeout)
    $corner = IniRead($ini, "Position", "Corner", $corner)
    $WinEnabled = IniRead($ini, "Window", "Enabled", $WinEnabled)
    $w = IniRead($ini, "Window", "Weight", $w)
    $h = IniRead($ini, "Window", "Height", $h)
    $trans = IniRead($ini, "Window", "Transparency", $trans)
    $ToolTipEnabled = IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled)
    Else
    IniWrite($ini, "Ping", "Intervall", $Intervall)
    IniWrite($ini, "Ping", "Timeout", $timeout)
    IniWrite($ini, "Position", "Corner", $corner)
    IniWrite($ini, "Window", "Enabled", $WinEnabled)
    IniWrite($ini, "Window", "Weight", $w)
    IniWrite($ini, "Window", "Height", $h)
    IniWrite($ini, "Window", "Transparency", $trans)
    IniWrite($ini, "ToolTip", "Enabled", $ToolTipEnabled)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $corner = 1 Then
    $x = 5
    $y = 5
    ElseIf $corner = 2 Then
    $x = $DeskX - $w - 5
    $y = 5
    ElseIf $corner = 3 Then
    $x = $DeskX - $w - 5
    $y = $DeskY - $h - 35
    ElseIf $corner = 4 Then
    $x = 5
    $y = $DeskY - $h - 35
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $gui = GUICreate($script, $w, $h, $x, $y, $WS_POPUPWINDOW, $WS_EX_TRANSPARENT + $WS_EX_TOOLWINDOW)
    WinSetOnTop($script, '', 1)
    WinSetTrans($script, '', (100 - $trans) * 2.55)
    $list2 = _GUICtrlListView_Create($gui, "||", 5, 5, $w - 10, $h - 10)
    _GUICtrlListView_SetColumn($list2, 0, "Name", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 1, "IP", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 2, "Status", 50, 2)

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    If $Sections = 0 Then
    Else
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list2, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $Sections[$i], 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $gui)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    _PingProc()

    [/autoit] [autoit][/autoit] [autoit]

    Func _PingProc()
    While 1
    $count = _GUICtrlListView_GetItemCount($list2)
    For $i = 0 To $count - 1
    $pingip = _GUICtrlListView_GetItemText($list2, $i, 1)
    Ping($pingip, $timeout)
    Next
    Sleep($Intervall)
    WEnd
    EndFunc ;==>_PingProc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Change()

    [/autoit] [autoit][/autoit] [autoit]

    $GuiIP = GUICreate($script & " Destiny IPs", 345, 310)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ExitSettings")

    [/autoit] [autoit][/autoit] [autoit]

    $list = _GUICtrlListView_Create($GuiIP, "|", 5, 5, 250, 300)
    _GUICtrlListView_SetColumn($list, 0, "Name", 120, 2)
    _GUICtrlListView_SetColumn($list, 1, "IP", 125, 2)

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list, $lineIndex, $Sections[$i], 1)
    ;~ _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    Else
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $badd = GUICtrlCreateButton("&add", 260, 10, 80)
    GUICtrlSetOnEvent(-1, "_AddIP")
    $bremove = GUICtrlCreateButton("&remove", 260, 50, 80)
    GUICtrlSetOnEvent(-1, "_RemoveIP")
    $bclear = GUICtrlCreateButton("&clear", 260, 90, 80)
    GUICtrlSetOnEvent(-1, "_ClearIP")
    $bok = GUICtrlCreateButton("&ok", 260, 280, 80)
    GUICtrlSetOnEvent(-1, "_SaveIP")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $GuiIP)
    EndFunc ;==>_Change

    [/autoit] [autoit][/autoit] [autoit]

    Func _AddIP()
    Do
    $addname = InputBox("Name", "Please enter a name", "", "", 100, 130)
    If @error = 1 Then
    $error1 = 1
    ExitLoop
    Else
    EndIf
    until $addname <> ""
    If $error1 = 1 Then
    Else
    Do
    $addip = InputBox("IP", "Please enter the IP", "", "", 100, 130)
    If @error = 1 Then
    $error2 = 1
    ExitLoop
    Else
    EndIf
    Until StringRegExp($addip, "[0-9]+")
    If $error2 <> 1 Then
    _GUICtrlListView_AddItem($list, $addname)
    _GUICtrlListView_AddSubItem($list, _GUICtrlListView_GetItemCount($list) - 1, $addip, 1)
    Else
    EndIf
    EndIf
    $error1 = 0
    $error2 = 0
    EndFunc ;==>_AddIP

    [/autoit] [autoit][/autoit] [autoit]

    Func _RemoveIP()
    _GUICtrlListView_DeleteItemsSelected($list)
    EndFunc ;==>_RemoveIP

    [/autoit] [autoit][/autoit] [autoit]

    Func _ClearIP()
    _GUICtrlListView_DeleteAllItems($list)
    EndFunc ;==>_ClearIP

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveIP()

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete($pathIPs)
    $anz = _GUICtrlListView_GetItemCount($list)
    If $anz = 0 Then
    Else
    For $i = 1 To $anz
    IniWrite($pathIPs, _GUICtrlListView_GetItemText($list, $i - 1, 1), _GUICtrlListView_GetItemText($list, $i - 1), "-")
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_HIDE, $GuiIP)

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($pathIPs) Then
    $Sections = IniReadSectionNames($pathIPs)
    $lineIndex = 0
    For $i = 1 To $Sections[0]
    $varIP = IniReadSection($pathIPs, $Sections[$i])
    _GUICtrlListView_AddItem($list2, $varIP[1][0])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $Sections[$i], 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    Else
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _PingProc()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_SaveIP

    [/autoit] [autoit][/autoit] [autoit]

    Func _Settings()

    [/autoit] [autoit][/autoit] [autoit]

    $GuiSettings = GUICreate($script & " Settings", 450, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ExitSettings")

    [/autoit] [autoit][/autoit] [autoit]

    ;ToolTip
    GUICtrlCreateGroup("Tooltip", 5, 5, 135, 60)
    $cbtooltip = GUICtrlCreateCheckbox("Enable ToolTip", 25, 30, 100)
    GUICtrlSetTip(-1, "Enables the ToolTip-Information")
    GUICtrlSetState($cbtooltip, IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled))

    [/autoit] [autoit][/autoit] [autoit]

    ;ping
    GUICtrlCreateGroup("Ping", 5, 70, 135, 120)
    GUICtrlCreateLabel("Intervall:", 15, 105, 40)
    GUICtrlSetTip(-1, "Time between pings in miliseconds")
    $Iintervall = GUICtrlCreateInput(IniRead($ini, "Ping", "Intervall", $Intervall), 60, 100, 50)
    GUICtrlCreateLabel("ms", 115, 105, 20)
    GUICtrlCreateLabel("Timeout:", 15, 140, 40)
    GUICtrlSetTip(-1, "Timeout after no response in miliseconds")
    $Itimeout = GUICtrlCreateInput(IniRead($ini, "Ping", "Timeout", $timeout), 60, 135, 50)
    GUICtrlCreateLabel("ms", 115, 140, 20)

    [/autoit] [autoit][/autoit] [autoit]

    ;weight & height
    GUICtrlCreateGroup("Window", 150, 5, 200, 100)
    $cbwindow = GUICtrlCreateCheckbox("Enable Info-Window", 160, 20, 120)
    GUICtrlSetTip(-1, "Enables the Information-Window on startup")
    GUICtrlSetState($cbwindow, IniRead($ini, "Window", "Enabled", $WinEnabled))
    GUICtrlSetOnEvent($cbwindow, "_DisabelWindow")
    GUICtrlCreateLabel("Weight:", 180, 50, 40)
    GUICtrlSetTip(-1, "Wight of the Information-Window")
    $Iw = GUICtrlCreateInput(IniRead($ini, "Window", "Weight", $w), 220, 45, 50)
    GUICtrlCreateLabel("mm", 275, 50, 20)
    GUICtrlCreateLabel("Height:", 180, 80, 40)
    GUICtrlSetTip(-1, "Hight of the Information-Window")
    $Ih = GUICtrlCreateInput(IniRead($ini, "Window", "Height", $h), 220, 75, 50)
    GUICtrlCreateLabel("mm", 275, 80, 20)
    $slider = GUICtrlCreateSlider(300, 15, 25, 85, $TBS_VERT + $TBS_AUTOTICKS)
    GUICtrlSetTip(-1, "Transparency of the Information-Window")
    GUICtrlSetLimit($slider, 100, 0)
    GUICtrlSetData($slider, IniRead($ini, "Window", "Transparency", $trans))
    GUICtrlCreateLabel("0", 335, 15, 10, 15)
    GUICtrlCreateLabel("100", 327, 85, 20, 15)

    [/autoit] [autoit][/autoit] [autoit]

    ;corner
    GUICtrlCreateGroup("Corner Position", 150, 110, 200, 80)
    $TL = GUICtrlCreateRadio("Top Left", 160, 125, 60)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $TR = GUICtrlCreateRadio("Top Right", 255, 125, 65)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $BR = GUICtrlCreateRadio("Bottom Right", 255, 160, 80)
    GUICtrlSetTip(-1, "Position the Information-Window appears")
    $BL = GUICtrlCreateRadio("Bottom Left", 160, 160, 70)
    GUICtrlSetTip(-1, "Position the Information-Window appears")

    [/autoit] [autoit][/autoit] [autoit]

    $corner = IniRead($ini, "Position", "Corner", $corner)
    If $corner = 1 Then
    GUICtrlSetState($TL, 1)
    ElseIf $corner = 2 Then
    GUICtrlSetState($TR, 1)
    ElseIf $corner = 3 Then
    GUICtrlSetState($BR, 1)
    ElseIf $corner = 4 Then
    GUICtrlSetState($BL, 1)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;buttons
    $bsave = GUICtrlCreateButton("save", 360, 10, 80)
    GUICtrlSetOnEvent(-1, "_SaveSettings")
    $bstandard = GUICtrlCreateButton("standard", 360, 45, 80)
    GUICtrlSetOnEvent(-1, "_StandardSettings")
    $bexit = GUICtrlCreateButton("exit", 360, 160, 80)
    GUICtrlSetOnEvent(-1, "_ExitSettings")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $GuiSettings)
    EndFunc ;==>_Settings

    [/autoit] [autoit][/autoit] [autoit]

    Func _SaveSettings()
    IniWrite($ini, "Ping", "Intervall", GUICtrlRead($Iintervall))
    IniWrite($ini, "Ping", "Timeout", GUICtrlRead($Itimeout))
    IniWrite($ini, "Window", "Enabled", GUICtrlRead($cbwindow))
    IniWrite($ini, "Window", "Weight", GUICtrlRead($Iw))
    IniWrite($ini, "Window", "Height", GUICtrlRead($Ih))
    IniWrite($ini, "Window", "Transparency", GUICtrlRead($slider))
    IniWrite($ini, "ToolTip", "Enabled", GUICtrlRead($cbtooltip))
    $cornerTL = GUICtrlRead($TL)
    $cornerTR = GUICtrlRead($TR)
    $cornerBR = GUICtrlRead($BR)
    $cornerBL = GUICtrlRead($BL)
    If $cornerTL = 1 Then
    IniWrite($ini, "Position", "Corner", "1")
    ElseIf $cornerTR = 1 Then
    IniWrite($ini, "Position", "Corner", "2")
    ElseIf $cornerBR = 1 Then
    IniWrite($ini, "Position", "Corner", "3")
    ElseIf $cornerBL = 1 Then
    IniWrite($ini, "Position", "Corner", "4")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_SaveSettings

    [/autoit] [autoit][/autoit] [autoit]

    Func _StandardSettings()
    GUICtrlSetData($Iintervall, "10000")
    GUICtrlSetData($Itimeout, "4000")
    GUICtrlSetState($cbwindow, 1)
    GUICtrlSetData($Iw, 300)
    GUICtrlSetData($Ih, 200)
    GUICtrlSetData($slider, 40)
    GUICtrlSetState($cbtooltip, 1)
    GUICtrlSetState($TL, 0)
    GUICtrlSetState($TR, 0)
    GUICtrlSetState($BR, 1)
    GUICtrlSetState($BL, 0)
    GUICtrlSetState($Iw, $GUI_ENABLE)
    GUICtrlSetState($Ih, $GUI_ENABLE)
    GUICtrlSetState($slider, $GUI_ENABLE)
    EndFunc ;==>_StandardSettings

    [/autoit] [autoit][/autoit] [autoit]

    Func _ExitSettings()

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_HIDE, $GuiSettings)

    [/autoit] [autoit][/autoit] [autoit]

    $Intervall = IniRead($ini, "Ping", "Intervall", $Intervall)
    $timeout = IniRead($ini, "Position", "Timeout", $timeout)
    $corner = IniRead($ini, "Position", "Corner", $corner)
    $WinEnabled = IniRead($ini, "Window", "Enabled", $WinEnabled)
    $w = IniRead($ini, "Window", "Weight", $w)
    $h = IniRead($ini, "Window", "Height", $h)
    $trans = IniRead($ini, "Window", "Transparency", $trans)
    $ToolTipEnabled = IniRead($ini, "ToolTip", "Enabled", $ToolTipEnabled)

    [/autoit] [autoit][/autoit] [autoit]

    If $corner = 1 Then
    $x = 5
    $y = 5
    ElseIf $corner = 2 Then
    $x = $DeskX - $w - 5
    $y = 5
    ElseIf $corner = 3 Then
    $x = $DeskX - $w - 5
    $y = $DeskY - $h - 35
    ElseIf $corner = 4 Then
    $x = 5
    $y = $DeskY - $h - 35
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($script, "", $x, $y, $w, $h)
    WinSetTrans($script, '', (100 - $trans) * 2.55)
    _WinAPI_SetWindowPos($list2, 0, 5, 5, $w - 10, $h - 10, $SWP_SHOWWINDOW)
    _GUICtrlListView_SetColumn($list2, 0, "Name", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 1, "IP", ($w / 2) - 30, 2)
    _GUICtrlListView_SetColumn($list2, 2, "Status", 50, 2)

    [/autoit] [autoit][/autoit] [autoit]

    _PingProc()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_ExitSettings

    [/autoit] [autoit][/autoit] [autoit]

    Func _DisabelWindow()
    If GUICtrlRead($cbwindow) = 1 Then
    GUICtrlSetState($Iw, $GUI_ENABLE)
    GUICtrlSetState($Ih, $GUI_ENABLE)
    GUICtrlSetState($slider, $GUI_ENABLE)
    Else
    GUICtrlSetState($Iw, $GUI_DISABLE)
    GUICtrlSetState($Ih, $GUI_DISABLE)
    GUICtrlSetState($slider, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_DisabelWindow

    [/autoit] [autoit][/autoit] [autoit]

    Func _OnExitFunc()
    Exit
    EndFunc ;==>_OnExitFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Tray-Icon
    Func TrayIcon()
    Opt("TrayIconHide", Not Opt("TrayIconHide", "Default"))
    EndFunc ;==>TrayIcon

    [/autoit] [autoit][/autoit] [autoit]

    ;Pause
    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    Sleep(100)
    ToolTip(@ScriptName & ' is paused')
    WEnd
    ToolTip("")
    EndFunc ;==>TogglePause

    [/autoit] [autoit][/autoit] [autoit]

    Func _ShowGUI()
    $state = WinGetState('WhoIsOn', '')
    If BitAND($state, 2) Then
    WinSetState('WhoIsOn', '', @SW_HIDE)
    ToolTip('', -1, -1, '', '', 2)
    $tool = 1
    Else
    WinSetState('WhoIsOn', '', @SW_SHOW)
    $tool = 0
    EndIf
    EndFunc ;==>_ShowGUI

    [/autoit]

    So long,

    Mega