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
#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>
Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1)
Opt("GuiOnEventMode",1)
DirCreate(@ScriptDir & "\Icons")
FileInstall("No.ico", @ScriptDir & "\Icons\No.ico")
FileInstall("Yes.ico", @ScriptDir & "\Icons\Yes.ico")
$no = @ScriptDir & "\Icons\No.ico"
$yes = @ScriptDir & "\Icons\Yes.ico"
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
HttpSetProxy(1)
[/autoit] [autoit][/autoit] [autoit]$DeskX = @DesktopWidth
$DeskY = @DesktopHeight
TrayCreateItem("Settings")
TrayItemSetOnEvent(-1,"_Settings")
TrayCreateItem("Change IPs")
TrayItemSetOnEvent(-1,"_Change")
TrayCreateItem("")
TrayCreateItem("Hide/Show")
TrayItemSetOnEvent(-1,"_ShowGUI")
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"_OnExitFunc")
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
$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
GUISetState(@SW_SHOW, $gui)
$GuiIP = GUICreate($script & " Destiny IPs", 345, 310)
GUISetOnEvent($GUI_EVENT_CLOSE, "_ExitIPs")
$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")
;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)
;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")
$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
;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 ###
_EnableProxySettings()
_EnableProxyMode()
_ProxyOK()
AdlibEnable("_PingProc", $intervall)
While 1
Sleep(100)
WEnd
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
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
Func _RemoveIP()
_GUICtrlListView_DeleteItemsSelected($list)
EndFunc
Func _ClearIP()
_GUICtrlListView_DeleteAllItems($list)
EndFunc
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
Func _ExitIPs()
_GUICtrlListView_DeleteAllItems($list)
GUISetState(@SW_HIDE, $GuiIP)
EndFunc
Func _Settings()
AdlibDisable( )
GUISetState(@SW_SHOW, $GuiSettings)
EndFunc
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
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
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
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
Func _ProxyButton()
GUISetState(@SW_SHOW, $Form1)
EndFunc
Func _ProxyCancel()
GUISetState(@SW_HIDE, $Form1)
EndFunc
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
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
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
Func _OnExitFunc()
FileDelete(@ScriptDir & "\IP.ini")
Exit
EndFunc
;Tray-Icon
Func TrayIcon()
Opt("TrayIconHide", Not Opt("TrayIconHide", "Default"))
EndFunc
;Pause
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip(@ScriptName & ' is paused')
WEnd
ToolTip("")
EndFunc
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
;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
PS: Die Icons zum komplettieren ... sind nicht als RAR gepackt, sondern die Endung muss nur entfernt werden.