So hab jetzt mal nach dem ziehen des Steckers in ipconfig geschaut, da hat er jedenfalls keine IP mehr. Umgekehrt funktioniert es, wenn zunächst keine Verbindung besteht und dann das Kabel eingesteckt wird. Mein angepasstes Script schaut jetzt übrigens so aus:
AutoIt
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.16.0
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include-once
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <String.au3>
#include <WinApi.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
Global $RBOX_EVENT_CLOSE = 1
Global $ROUNDES = 20, $LastHwnd = 0
Global $LastHwnd
Global $GUIBKCOLOR = 0xFFFFFFFF
Local $sHost= "localhost"
Local $Gateway, $nMsg
global $IP = "Kein Netz"
Global $IPLabel
Global $HostLabel
; processing -------------------------------------------------------------------
AdlibRegister('_ActiveIP', 50)
Global $hGui = RBoxCreate("IP CHECK", 400, 200)
;_createButtons()
_createLabels()
While True
CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
local $gMsg = GUIGetMsg()
Switch $gMsg
Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
GUIDelete($hGui)
AdlibUnRegister('_ActiveIP')
Exit
EndSwitch
WEnd
; functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _createLabels()
$HostLabel = GUICtrlCreateLabel( $sHost, 10, 85, 980, 20 )
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 9, 800) ; bold
; if $ip = "0" Then
$IP = "Kein Netz"
; Endif
$IPLabel = GUICtrlCreateLabel( $ip, 10, 60, 980, 20 )
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 9, 800) ; bold
EndFunc
Func _createButtons()
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _ActiveIP()
$IP = "Kein Netz"
Local $objAdapter
Local $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $sHost & "\root\cimv2")
If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
Local $colAdapter = $objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 0x30)
If Not IsObj($colAdapter) Then Return SetError(1, 0, 0)
For $objAdapter In $colAdapter
If ($objAdapter.IPAddress(0)) Then
If $objAdapter.DefaultIPGateway(0) Then
$IP = $objAdapter.IPAddress(0)
$Gateway = $objAdapter.DefaultIPGateway(0)
GUICtrlSetData($IPLabel, $IP)
Return
EndIf
EndIf
Next
EndFunc ;==>_ActiveIP
;;;;;;;;;;;;;;BOX-Style;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
;GUICtrlCreatePic('C:\Windows\Temp\hg.jpg', 0, 25, 920, 660)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetBkColor($GUIBKCOLOR, $GUI)
;_GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
$RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
$Title &= " "
Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
GUICtrlSetBkColor($hTitle, -2)
Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
GUICtrlSetState($Graphic, $Gui_DISABLE)
;GradientFill($Graphic, 0, 0, $width, 25, $ARRAY_COLOR_TOP_MIN, $ARRAY_COLOR_TOP_MAX)
If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
Return $GUI
EndFunc
Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
Local $cGui = GUIGetCursorInfo($hGui)
If Not IsArray($cGui) Then
Return 0
EndIf
If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
EndFunc
Alles anzeigen