• Update 20.10.08

    WhoIsOn hilft euch dabei, beliebig viele Internet-Adressen auf deren Online-Status hin zu überprüfen.
    Nach über 1 Jahr habe ich das Teil endlich mal fertig gestellt (habe nicht so lange dran gearbeitet, sondern es nun einfach vollendet. Viel Code stammt noch aus meiner Anfangszeit, sieht nicht toll aus, funzt aber soweit *g*).

    Wenn ein Host On oder Off geht, wird man, sofern gewünscht, per SplashScreen informiert, ansonsten sieht man den Status auch immer in einem eigenen Fenster. Zusätzlich können verschiedene Einstellungen vorgenommen werden, unter anderem in welchen Intervall gepingt werden soll, und mit welchem Timeout.

    Das Tray-Menü wird teils mit Verzögerung aufgerufen, wenn ein Ping-Prozess im Gange ist. Könnte man sicher beheben, aber in meinen Augen scheint es so in Ordnung zu sein, da die Hauptfunktion ja das "Pingen" ist.

    Ideen, Anregungen, Kommentare oder Fehler gefunfen ... dann bitte berichten ;)

    Spoiler anzeigen
    [autoit]


    #include <GuiListView.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>

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

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

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

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

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

    $no = @ScriptDir & "\Icons\No.ico"
    $yes = @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, $Splash

    [/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]

    HttpSetProxy(1)

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

    $DeskX = @DesktopWidth
    $DeskY = @DesktopHeight

    [/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)
    $ProxyEnable = IniRead($ini, "Proxy", "Enable", 0)
    $ProxyMode = IniRead($ini, "Proxy", "Mode", 1)
    $ProxyAddress = IniRead($ini, "Proxy", "Adress", "")
    $ProxyPort = IniRead($ini, "Proxy", "Port", "")
    $ProxyUser = IniRead($ini, "Proxy", "User", "")
    $ProxyPass = IniRead($ini, "Proxy", "Pass", "")
    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_SetExtendedListViewStyle($list2, $LVS_EX_SUBITEMIMAGES)
    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUICtrlListView_SetImageList($list2, $hImage, 1)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -14) ;world icon = 0
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 24) ;adress icon = 1
    _GUIImageList_AddIcon($hImage, $yes) ;yes icon = 2
    _GUIImageList_AddIcon($hImage, $no) ;no icon = 3
    _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, $Sections[$i])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][0], 1, 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, "-", 2)
    IniWrite($pathIPs, $Sections[$i], $varIP[1][0], "-")
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf

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

    GUISetState(@SW_SHOW, $gui)

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

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

    $listhandle = GUICtrlCreateListView("Name|IP|Status", 5, 5, 250, 300, BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_HEADERDRAGDROP,$LVS_EX_FULLROWSELECT))
    $list = GUICtrlGetHandle($listhandle);_GUICtrlListView_Create($GuiIP,"|", 5, 5, 250, 300)
    _GUICtrlListView_SetColumn($list, 0, "Name", 120, 2)
    _GUICtrlListView_SetColumn($list, 1, "IP", 125, 2)
    _GUICtrlListView_SetColumn($list, 2, "Status", 0, 2)

    $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")

    $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, 90, 40)
    GUICtrlSetTip(-1, "Time between pings in miliseconds")
    $Iintervall = GUICtrlCreateInput(IniRead($ini, "Ping", "Intervall", $intervall), 60, 85, 50)
    GUICtrlCreateLabel("ms", 115, 90, 20)
    GUICtrlCreateLabel("Timeout:", 15, 125, 40)
    GUICtrlSetTip(-1, "Timeout after no response in miliseconds")
    $Itimeout = GUICtrlCreateInput(IniRead($ini, "Ping", "Timeout", $timeout), 60, 120, 50)
    GUICtrlCreateLabel("ms", 115, 125, 20)
    $ProxyButton = GUICtrlCreateButton("Proxy Settings", 15, 150, 115)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_ProxyButton")

    [/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, 80)
    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")

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Proxy Settings", 219, 214)
    $Checkbox1 = GUICtrlCreateCheckbox("Enable Proxy", 60, 4, 129, 17)
    GUICtrlSetOnEvent(-1, "_EnableProxyMode")
    GUICtrlSetState(-1, $ProxyEnable)
    $Group1 = GUICtrlCreateGroup("Mode", 0, 24, 217, 49)
    $Radio1 = GUICtrlCreateRadio("none", 10, 45, 57, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    $Radio2 = GUICtrlCreateRadio("IE-Proxy", 68, 45, 57, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    $Radio3 = GUICtrlCreateRadio("specified", 141, 45, 65, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    If $ProxyMode = 1 Then
    GUICtrlSetState($Radio1, 1)
    ElseIf $ProxyMode = 0 Then
    GUICtrlSetState($Radio2, 1)
    ElseIf $ProxyMode = 2 Then
    GUICtrlSetState($Radio3, 1)
    Else
    GUICtrlSetState($Radio1, 1)
    EndIf
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Group2 = GUICtrlCreateGroup("Group2", 0, 80, 217, 113)
    $Input1 = GUICtrlCreateInput("", 56, 96, 153, 21)
    GUICtrlSetData(-1, $ProxyAddress)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input2 = GUICtrlCreateInput("", 56, 120, 153, 21)
    GUICtrlSetData(-1, $ProxyPort)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input3 = GUICtrlCreateInput("", 56, 144, 153, 21)
    GUICtrlSetData(-1, $ProxyUser)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input4 = GUICtrlCreateInput("", 56, 168, 153, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    GUICtrlSetData(-1, $ProxyPass)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("Adress", 11, 100, 36, 17)
    $Label2 = GUICtrlCreateLabel("User", 11, 145, 26, 17)
    $Label3 = GUICtrlCreateLabel("Pass", 11, 169, 27, 17)
    $Label4 = GUICtrlCreateLabel("Port", 11, 121, 23, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("OK", 0, 195, 65, 17, 0)
    GUICtrlSetOnEvent(-1, "_ProxyOK")
    $Button2 = GUICtrlCreateButton("Cancel", 152, 195, 65, 17, 0)
    GUICtrlSetOnEvent(-1, "_ProxyCancel")
    #EndRegion ### END Koda GUI section ###

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

    _EnableProxySettings()
    _EnableProxyMode()
    _ProxyOK()

    AdlibEnable("_PingProc", $intervall)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _PingProc()
    $count = _GUICtrlListView_GetItemCount($list2)
    For $i = 1 To $count
    $GetItem0 = _GUICtrlListView_GetItem($list2, $i -1, 0)
    $GetItem = _GUICtrlListView_GetItem($list2, $i -1, 1)
    $ping = Ping($GetItem[3], $timeout)
    $Error = @error
    $OldStat = IniRead($pathIPs, $GetItem0[3], $GetItem[3], "")
    If $ping = 0 Then
    IniWrite($pathIPs, $GetItem0[3], $GetItem[3], "Off")
    Else
    IniWrite($pathIPs, $GetItem0[3], $GetItem[3], "On")
    EndIf
    $NewStat = IniRead($pathIPs, $GetItem0[3], $GetItem[3], "")
    If $OldStat <> $NewStat Then
    Select
    Case $NewStat = "On"
    TraySetIcon($yes)
    _guictrllistview_AddSubItem($list2, $i - 1, "On", 2, 2)
    If $ToolTipEnabled = 1 Then $Splash = SplashTextOn("", $GetItem0[3] & " is now Online", 500, 30, -1, -1, 1 + 32, "Lucida Console", 10)
    WinSetOnTop($Splash, "", 1)
    _Win_SetClickThrough($Splash, "", True)
    WinSetTrans($Splash, "", 180)
    TraySetState(4)
    Sleep(3000)
    SplashOff()
    TraySetState(8)
    TraySetIcon( )
    Case $NewStat = "Off"
    Select
    Case $Error = "1"
    $Error = "Host is offline"
    Case $Error = "2"
    $Error = "Host is unreachable"
    Case $Error = "3"
    $Error = "Bad destination"
    Case $Error = "4"
    $Error = "Other errors"
    Case Else
    $Error = "n/a"
    EndSelect
    TraySetIcon($no)
    _guictrllistview_AddSubItem($list2, $i - 1, "Off", 2, 3)
    If $ToolTipEnabled = 1 Then $Splash = SplashTextOn("", $GetItem0[3] & " is now Offline. Error: " & $Error, 600, 30, -1, -1, 1 + 32, "Lucida Console", 10)
    WinSetOnTop($Splash, "", 1)
    _Win_SetClickThrough($Splash, "", True)
    WinSetTrans($Splash, "", 180)
    TraySetState(4)
    Sleep(3000)
    SplashOff()
    TraySetState(8)
    TraySetIcon( )
    EndSelect
    EndIf
    Next
    EndFunc

    Func _Change()
    AdlibDisable( )
    _GUICtrlListView_DeleteAllItems($list)
    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])
    $1 = _GUICtrlListView_AddItem($list, $Sections[$i])
    $2 = _GUICtrlListView_AddSubItem($list, $lineIndex, $varIP[1][0], 1)
    $3 = _GUICtrlListView_AddSubItem($list, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf
    GUISetState(@SW_SHOW, $GuiIP)
    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 $addip <> ""
    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), _GUICtrlListView_GetItemText($list, $i - 1, 1), _GUICtrlListView_GetItemText($list, $i - 1, 2))
    Next
    EndIf

    GUISetState(@SW_HIDE, $GuiIP)

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

    AdlibEnable("_PingProc", $intervall)

    EndFunc

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

    Func _ExitIPs()
    _GUICtrlListView_DeleteAllItems($list)
    GUISetState(@SW_HIDE, $GuiIP)
    EndFunc

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

    Func _Settings()
    AdlibDisable( )
    GUISetState(@SW_SHOW, $GuiSettings)
    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
    $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)

    If $WinEnabled <> 1 Then
    GUISetState(@SW_HIDE, $gui)
    Else
    GUISetState(@SW_SHOW, $gui)
    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)
    AdlibEnable("_PingProc", $intervall)
    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 _ProxyButton()
    GUISetState(@SW_SHOW, $Form1)
    EndFunc

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

    Func _ProxyCancel()
    GUISetState(@SW_HIDE, $Form1)
    EndFunc

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

    Func _ProxyOK()
    GUISetState(@SW_HIDE, $Form1)
    $GuiCtrlRead = GUICtrlRead($Checkbox1)
    If $GuiCtrlRead = 1 Then
    IniWrite($ini, "Proxy", "Enable", 1)
    $GuiCtrlRead = GUICtrlRead($Radio2)
    $GuiCtrlRead2 = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    IniWrite($ini, "Proxy", "Mode", 0)
    HttpSetProxy(0)
    ElseIf $GuiCtrlRead2 = 1 Then
    IniWrite($ini, "Proxy", "Mode", 2)
    $adress = GUICtrlRead($Input1)
    $port = GUICtrlRead($Input2)
    $user = GUICtrlRead($Input3)
    $pass = GUICtrlRead($Input4)
    IniWrite($ini, "Proxy", "Adress", $adress)
    IniWrite($ini, "Proxy", "Port", $port)
    IniWrite($ini, "Proxy", "User", $user)
    IniWrite($ini, "Proxy", "Pass", $pass)
    HttpSetProxy(2, $adress & ":" & $port, $user, $pass)
    Else
    IniWrite($ini, "Proxy", "Mode", 1)
    HttpSetProxy(1)
    EndIf
    Else
    IniWrite($ini, "Proxy", "Enable", 0)
    HttpSetProxy(1)
    EndIf
    EndFunc

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

    Func _EnableProxySettings()
    $GuiCtrlRead = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    GUICtrlSetState($Input4, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    GUICtrlSetState($Input4, $GUI_DISABLE)
    EndIf
    EndFunc

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

    Func _EnableProxyMode()
    $GuiCtrlRead = GUICtrlRead($Checkbox1)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Radio1, $GUI_ENABLE)
    GUICtrlSetState($Radio2, $GUI_ENABLE)
    GUICtrlSetState($Radio3, $GUI_ENABLE)
    $GuiCtrlRead = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    GUICtrlSetState($Input4, $GUI_ENABLE)
    EndIf
    Else
    GUICtrlSetState($Radio1, $GUI_DISABLE)
    GUICtrlSetState($Radio2, $GUI_DISABLE)
    GUICtrlSetState($Radio3, $GUI_DISABLE)
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    GUICtrlSetState($Input4, $GUI_DISABLE)
    EndIf
    EndFunc

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

    Func _OnExitFunc()
    FileDelete(@ScriptDir & "\IP.ini")
    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] [autoit][/autoit] [autoit]

    ;set window "immun"
    Func _Win_SetClickThrough($title,$text = "",$noclic = True)
    Local $hWnd = WinGetHandle($title,$text)
    If @error Then Return SetError(1,0,0)
    If $noclic Then
    _WinAPI_SetWindowLong($hWnd,$GWL_EXSTYLE,BitOR(_WinAPI_GetWindowLong($hWnd,$GWL_EXSTYLE),$WS_EX_TRANSPARENT))
    If @error Then Return SetError(2,0,0)
    Else
    _WinAPI_SetWindowLong($hWnd,$GWL_EXSTYLE,BitAND(_WinAPI_GetWindowLong($hWnd,$GWL_EXSTYLE),BitNOT($WS_EX_TRANSPARENT)))
    If @error Then Return SetError(2,0,0)
    EndIf
    Return 1
    EndFunc ; Author(s): Prog@ndy

    [/autoit]

    PS: Die Icons zum komplettieren ... sind nicht als RAR gepackt, sondern die Endung muss nur entfernt werden.

  • Morgen,

    ich wollte mal dein Script ausprobieren. Bei mir funktioniert es nicht wenn ich es ausführe über GO.

  • C:\Dokumente und Einstellungen\K1773R\Desktop\AutoIt\WhoIsOn\WhoIsOn.au3 (225) : ==> Variable used without being declared.:
    GUICtrlSetState(-1, $ProxyEnable)
    GUICtrlSetState(-1, ^ ERROR

  • hab ne idee wegen ner verbesserung:

    man kann ne ip ODER n hostname eingeben ^^ diese werden all 1 min zur ip umgewandelt (giebt da ne funktion dafür)

    wär das was?

  • Baus doch ein^^
    Ist ja nicht schwer^^

    [autoit]


    #include <Inet.au3>
    TCPStartup()
    $ip = TCPNameToIP("www.google.de")
    $name = _TCPIpToName($ip)
    MsgBox(0, "", $ip & @CRLF & $name)
    TCPShutdown()

    [/autoit]


    *Denkanstoß*

    Padmak

  • sry aber jetzt reg ich mich auf ^^ mein explorer ist durchsitchtig und kann nix anklicken -.-

    mfg

    EDIT 1:
    hab das problem:
    hab n fenster auf dessen ordner WhoIsOn heisst -.-
    kb auf explorer abschiessen )= wir krieg ich den wieder "normal"? ^^

    mfg

  • Was meinst Du mit "Domain" ?

    Einen FQN = Full-Qualified-Name = server.domain.FirstLevelDomain

    Falls Du die Unterscheidung für die Funktion _TCPIpToName() haben willst, kannst Du dir das sparen. Die verarbeitet nicht nur Namen, sondern auch IP's.

    Ansonsten:

    [autoit]

    $unbekannt = StringReplace($unbekannt,".","")
    If IsNumber($unbekannt) Then
    Msgbox(0,"","Müsste eine IP sein, weil kein Buchstabe vorkommt !")
    EndIf

    [/autoit]

    Edit:

    sry aber jetzt reg ich mich auf ^^ mein explorer ist durchsitchtig und kann nix anklicken -.-

    Und was spammst Du das hier in den Thread ? Das interessiert doch niemanden !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (28. Februar 2009 um 18:18)

  • guck oben hab n edit gemacht ^^

    bins eig gewonnt mit tasta zu arbeiten trotzdem ises nervig -.-

    EDIT 1:

    ok hab den fehler gefunden:
    wenn man den splashtext abgeschaltet hat versteckt er ein fenster namens "", also das wo gerade zuvordert ist. habs schnell gefixt:

    [autoit]

    #include <GuiListView.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiImageList.au3>

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

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

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

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

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

    $no = @ScriptDir & "\Icons\No.ico"
    $yes = @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, $Splash

    [/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]

    HttpSetProxy(1)
    $ProxyEnable = 0

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

    $DeskX = @DesktopWidth
    $DeskY = @DesktopHeight

    [/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)
    $ProxyEnable = IniRead($ini, "Proxy", "Enable", 0)
    $ProxyMode = IniRead($ini, "Proxy", "Mode", 1)
    $ProxyAddress = IniRead($ini, "Proxy", "Adress", "")
    $ProxyPort = IniRead($ini, "Proxy", "Port", "")
    $ProxyUser = IniRead($ini, "Proxy", "User", "")
    $ProxyPass = IniRead($ini, "Proxy", "Pass", "")
    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_SetExtendedListViewStyle($list2, $LVS_EX_SUBITEMIMAGES)
    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUICtrlListView_SetImageList($list2, $hImage, 1)
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -14) ;world icon = 0
    _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 24) ;adress icon = 1
    _GUIImageList_AddIcon($hImage, $yes) ;yes icon = 2
    _GUIImageList_AddIcon($hImage, $no) ;no icon = 3
    _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, $Sections[$i])
    _GUICtrlListView_AddSubItem($list2, $lineIndex, $varIP[1][0], 1, 1)
    _GUICtrlListView_AddSubItem($list2, $lineIndex, "-", 2)
    IniWrite($pathIPs, $Sections[$i], $varIP[1][0], "-")
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf

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

    GUISetState(@SW_SHOW, $gui)

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

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

    $listhandle = GUICtrlCreateListView("Name|IP|Status", 5, 5, 250, 300, BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_HEADERDRAGDROP,$LVS_EX_FULLROWSELECT))
    $list = GUICtrlGetHandle($listhandle);_GUICtrlListView_Create($GuiIP,"|", 5, 5, 250, 300)
    _GUICtrlListView_SetColumn($list, 0, "Name", 120, 2)
    _GUICtrlListView_SetColumn($list, 1, "IP", 125, 2)
    _GUICtrlListView_SetColumn($list, 2, "Status", 0, 2)

    $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")

    $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, 90, 40)
    GUICtrlSetTip(-1, "Time between pings in miliseconds")
    $Iintervall = GUICtrlCreateInput(IniRead($ini, "Ping", "Intervall", $intervall), 60, 85, 50)
    GUICtrlCreateLabel("ms", 115, 90, 20)
    GUICtrlCreateLabel("Timeout:", 15, 125, 40)
    GUICtrlSetTip(-1, "Timeout after no response in miliseconds")
    $Itimeout = GUICtrlCreateInput(IniRead($ini, "Ping", "Timeout", $timeout), 60, 120, 50)
    GUICtrlCreateLabel("ms", 115, 125, 20)
    $ProxyButton = GUICtrlCreateButton("Proxy Settings", 15, 150, 115)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_ProxyButton")

    [/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, 80)
    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")

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Proxy Settings", 219, 214)
    $Checkbox1 = GUICtrlCreateCheckbox("Enable Proxy", 60, 4, 129, 17)
    GUICtrlSetOnEvent(-1, "_EnableProxyMode")
    GUICtrlSetState(-1, $ProxyEnable)
    $Group1 = GUICtrlCreateGroup("Mode", 0, 24, 217, 49)
    $Radio1 = GUICtrlCreateRadio("none", 10, 45, 57, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    $Radio2 = GUICtrlCreateRadio("IE-Proxy", 68, 45, 57, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    $Radio3 = GUICtrlCreateRadio("specified", 141, 45, 65, 17)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "_EnableProxySettings")
    If $ProxyMode = 1 Then
    GUICtrlSetState($Radio1, 1)
    ElseIf $ProxyMode = 0 Then
    GUICtrlSetState($Radio2, 1)
    ElseIf $ProxyMode = 2 Then
    GUICtrlSetState($Radio3, 1)
    Else
    GUICtrlSetState($Radio1, 1)
    EndIf
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Group2 = GUICtrlCreateGroup("Group2", 0, 80, 217, 113)
    $Input1 = GUICtrlCreateInput("", 56, 96, 153, 21)
    GUICtrlSetData(-1, $ProxyAddress)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input2 = GUICtrlCreateInput("", 56, 120, 153, 21)
    GUICtrlSetData(-1, $ProxyPort)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input3 = GUICtrlCreateInput("", 56, 144, 153, 21)
    GUICtrlSetData(-1, $ProxyUser)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Input4 = GUICtrlCreateInput("", 56, 168, 153, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    GUICtrlSetData(-1, $ProxyPass)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("Adress", 11, 100, 36, 17)
    $Label2 = GUICtrlCreateLabel("User", 11, 145, 26, 17)
    $Label3 = GUICtrlCreateLabel("Pass", 11, 169, 27, 17)
    $Label4 = GUICtrlCreateLabel("Port", 11, 121, 23, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("OK", 0, 195, 65, 17, 0)
    GUICtrlSetOnEvent(-1, "_ProxyOK")
    $Button2 = GUICtrlCreateButton("Cancel", 152, 195, 65, 17, 0)
    GUICtrlSetOnEvent(-1, "_ProxyCancel")
    #EndRegion ### END Koda GUI section ###

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

    _EnableProxySettings()
    _EnableProxyMode()
    _ProxyOK()

    AdlibEnable("_PingProc", $intervall)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _PingProc()
    $count = _GUICtrlListView_GetItemCount($list2)
    For $i = 1 To $count
    $GetItem0 = _GUICtrlListView_GetItem($list2, $i -1, 0)
    $GetItem = _GUICtrlListView_GetItem($list2, $i -1, 1)
    $ping = Ping($GetItem[3], $timeout)
    $Error = @error
    $OldStat = IniRead($pathIPs, $GetItem0[3], $GetItem[3], "")
    If $ping = 0 Then
    IniWrite($pathIPs, $GetItem0[3], $GetItem[3], "Off")
    Else
    IniWrite($pathIPs, $GetItem0[3], $GetItem[3], "On")
    EndIf
    $NewStat = IniRead($pathIPs, $GetItem0[3], $GetItem[3], "")
    If $OldStat <> $NewStat Then
    Select
    Case $NewStat = "On"
    TraySetIcon($yes)
    _guictrllistview_AddSubItem($list2, $i - 1, "On", 2, 2)
    If $ToolTipEnabled = 1 Then
    $Splash = SplashTextOn("", $GetItem0[3] & " is now Online", 500, 30, -1, -1, 1 + 32, "Lucida Console", 10)
    WinSetOnTop($Splash, "", 1)
    _Win_SetClickThrough($Splash, "", True)
    WinSetTrans($Splash, "", 180)
    TraySetState(4)
    Sleep(3000)
    SplashOff()
    EndIf
    TraySetState(8)
    TraySetIcon( )
    Case $NewStat = "Off"
    Select
    Case $Error = "1"
    $Error = "Host is offline"
    Case $Error = "2"
    $Error = "Host is unreachable"
    Case $Error = "3"
    $Error = "Bad destination"
    Case $Error = "4"
    $Error = "Other errors"
    Case Else
    $Error = "n/a"
    EndSelect
    TraySetIcon($no)
    _guictrllistview_AddSubItem($list2, $i - 1, "Off", 2, 3)
    If $ToolTipEnabled = 1 Then
    $Splash = SplashTextOn("", $GetItem0[3] & " is now Offline. Error: " & $Error, 600, 30, -1, -1, 1 + 32, "Lucida Console", 10)
    WinSetOnTop($Splash, "", 1)
    _Win_SetClickThrough($Splash, "", True)
    WinSetTrans($Splash, "", 180)
    TraySetState(4)
    Sleep(3000)
    SplashOff()
    EndIf
    TraySetState(8)
    TraySetIcon( )
    EndSelect
    EndIf
    Next
    EndFunc

    Func _Change()
    AdlibDisable( )
    _GUICtrlListView_DeleteAllItems($list)
    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])
    $1 = _GUICtrlListView_AddItem($list, $Sections[$i])
    $2 = _GUICtrlListView_AddSubItem($list, $lineIndex, $varIP[1][0], 1)
    $3 = _GUICtrlListView_AddSubItem($list, $lineIndex, $varIP[1][1], 2)
    $lineIndex += 1
    Next
    EndIf
    Else
    EndIf
    GUISetState(@SW_SHOW, $GuiIP)
    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 $addip <> ""
    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), _GUICtrlListView_GetItemText($list, $i - 1, 1), _GUICtrlListView_GetItemText($list, $i - 1, 2))
    Next
    EndIf

    GUISetState(@SW_HIDE, $GuiIP)

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

    AdlibEnable("_PingProc", $intervall)

    EndFunc

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

    Func _ExitIPs()
    _GUICtrlListView_DeleteAllItems($list)
    GUISetState(@SW_HIDE, $GuiIP)
    EndFunc

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

    Func _Settings()
    AdlibDisable( )
    GUISetState(@SW_SHOW, $GuiSettings)
    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
    $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)

    If $WinEnabled <> 1 Then
    GUISetState(@SW_HIDE, $gui)
    Else
    GUISetState(@SW_SHOW, $gui)
    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)
    AdlibEnable("_PingProc", $intervall)
    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 _ProxyButton()
    GUISetState(@SW_SHOW, $Form1)
    EndFunc

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

    Func _ProxyCancel()
    GUISetState(@SW_HIDE, $Form1)
    EndFunc

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

    Func _ProxyOK()
    GUISetState(@SW_HIDE, $Form1)
    $GuiCtrlRead = GUICtrlRead($Checkbox1)
    If $GuiCtrlRead = 1 Then
    IniWrite($ini, "Proxy", "Enable", 1)
    $GuiCtrlRead = GUICtrlRead($Radio2)
    $GuiCtrlRead2 = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    IniWrite($ini, "Proxy", "Mode", 0)
    HttpSetProxy(0)
    ElseIf $GuiCtrlRead2 = 1 Then
    IniWrite($ini, "Proxy", "Mode", 2)
    $adress = GUICtrlRead($Input1)
    $port = GUICtrlRead($Input2)
    $user = GUICtrlRead($Input3)
    $pass = GUICtrlRead($Input4)
    IniWrite($ini, "Proxy", "Adress", $adress)
    IniWrite($ini, "Proxy", "Port", $port)
    IniWrite($ini, "Proxy", "User", $user)
    IniWrite($ini, "Proxy", "Pass", $pass)
    HttpSetProxy(2, $adress & ":" & $port, $user, $pass)
    Else
    IniWrite($ini, "Proxy", "Mode", 1)
    HttpSetProxy(1)
    EndIf
    Else
    IniWrite($ini, "Proxy", "Enable", 0)
    HttpSetProxy(1)
    EndIf
    EndFunc

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

    Func _EnableProxySettings()
    $GuiCtrlRead = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    GUICtrlSetState($Input4, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    GUICtrlSetState($Input4, $GUI_DISABLE)
    EndIf
    EndFunc

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

    Func _EnableProxyMode()
    $GuiCtrlRead = GUICtrlRead($Checkbox1)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Radio1, $GUI_ENABLE)
    GUICtrlSetState($Radio2, $GUI_ENABLE)
    GUICtrlSetState($Radio3, $GUI_ENABLE)
    $GuiCtrlRead = GUICtrlRead($Radio3)
    If $GuiCtrlRead = 1 Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    GUICtrlSetState($Input2, $GUI_ENABLE)
    GUICtrlSetState($Input3, $GUI_ENABLE)
    GUICtrlSetState($Input4, $GUI_ENABLE)
    EndIf
    Else
    GUICtrlSetState($Radio1, $GUI_DISABLE)
    GUICtrlSetState($Radio2, $GUI_DISABLE)
    GUICtrlSetState($Radio3, $GUI_DISABLE)
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    GUICtrlSetState($Input4, $GUI_DISABLE)
    EndIf
    EndFunc

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

    Func _OnExitFunc()
    FileDelete(@ScriptDir & "\IP.ini")
    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][autoit][/autoit][autoit]

    ;set window "immun"
    Func _Win_SetClickThrough($title,$text = "",$noclic = True)
    Local $hWnd = WinGetHandle($title,$text)
    If @error Then Return SetError(1,0,0)
    If $noclic Then
    _WinAPI_SetWindowLong($hWnd,$GWL_EXSTYLE,BitOR(_WinAPI_GetWindowLong($hWnd,$GWL_EXSTYLE),$WS_EX_TRANSPARENT))
    If @error Then Return SetError(2,0,0)
    Else
    _WinAPI_SetWindowLong($hWnd,$GWL_EXSTYLE,BitAND(_WinAPI_GetWindowLong($hWnd,$GWL_EXSTYLE),BitNOT($WS_EX_TRANSPARENT)))
    If @error Then Return SetError(2,0,0)
    EndIf
    Return 1
    EndFunc ; Author(s): Prog@ndy

    [/autoit]

    mfg

    4 Mal editiert, zuletzt von K1773R (28. Februar 2009 um 18:45)