Hi zusammen.
Bin hier grad echt irgendwie am Durchdrehen...
Ich hab neulich hier gepostet und mit der Hilfe von ein paar netten Leuten ein kleines Tool geschrieben.
Dieses Programm misst permanent den Netzwerktraffic.
Funktioniert hier bei mir alles wunderbar...jetzt hab ich es als exe rausgeschrieben und auf den Rechner kopiert, auf dem es eigentlich laufen soll und da krieg ich gleich nach dem Ausführen der Datei die Fehlermeldung "Error: Subscript used with non-Array variable".
Ich verstehs überhaupt nicht. Hab dann auf dem Rechner auch mal AutoIt installiert und dort das Script ausgeführt. Gleicher Fehler.
Hab Euch hier mal das Script, vielleicht könnt Ihr mir helfen, oder zumindest mal sagen, ob es bei euch läuft..?
EDIT: der Fehler tritt übrigens angeblich in Zeile 124/125 auf.
#include
#include
#include
#include
Opt("GUIOnEventMode", 1)
$begin1 = TimerInit();Startpunkt setzen der Zeitmessung(Um das erste mal zu Deklarieren)
$start = TimerInit()
$NetGUI = GUICreate("Tracking Guard v0.9", 294, 100, 197, 120, -1, BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Up = GUICtrlCreateLabel("SpeedUp", 8, 50, 100, 20, BitOR($SS_CENTER,$SS_SUNKEN,$WS_GROUP))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Down = GUICtrlCreateLabel("SpeedDown", 176, 50, 100, 20, BitOR($SS_CENTER,$SS_SUNKEN,$WS_GROUP))
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlCreateLabel("Upload", 31, 20, 55, 20, $WS_GROUP)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("Download", 190, 20, 70, 20, $WS_GROUP)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Progress1 = GUICtrlCreateProgress(8, 80, 100, 9)
$Progress2 = GUICtrlCreateProgress(176, 80, 100, 9)
GUISetState(@SW_SHOW)
GUISetOnEvent(-3, "_exit")
$UpStr = 0
$DownStr = 0
$time = 0
$UpStr_alt = 0
$DownStr_alt = 0
_netstat($UpStr, $DownStr); Up,Down das erste mal lesen um Verschiebungspunkte zu suchen
$Xup = $UpStr ;Startpunkt setzen
$Xdown = $DownStr
While 1
Sleep (500)
_netstat($UpStr, $DownStr)
$UpStr = $UpStr - $Xup ;Startpunkt verschieben
$DownStr = $DownStr - $Xdown
$Up_speed = $UpStr - $UpStr_alt
$Down_speed = $DownStr - $DownStr_alt
;ToolTip ('Alt: '&$UpStr_alt&' - '&$UpStr&' = '&$UpStr-$UpStr_alt &@CRLF _
; &'Neu: '&$DownStr_alt&' - '&$DownStr&' = '&$DownStr-$DownStr_alt,5,5)
$diff = TimerDiff($begin1)
$begin1 = TimerInit()
;ConsoleWrite($diff&@CRLF)
$Up_speed = $Up_speed/($diff/1000) ;Zeitversatz abziehen oder draufrechnen (WICHTIG!)
$Down_speed = $Down_speed/($diff/1000)
$Up_speed = Round(($Up_speed*8)/1024,2) ; *8 für Byte zu bit /1024 für in kbit
$Down_speed = Round(($Down_speed*8)/1024,2)
$Up_speed_pro = $Up_speed*0.5
$Down_speed_pro = $Down_speed*0.05 ; 0,05 0.00625
;ToolTip ($Up_speed_pro&' | '&$Down_speed_pro)
GUICtrlSetData ($Progress1,$Up_speed_pro) ;Prozessbalken setzen
GUICtrlSetData ($Progress2,$Down_speed_pro)
GUICtrlSetData ($Up,$Up_speed&' kbit/s') ;Upload Daten setzen
GUICtrlSetData ($Down,$Down_speed&' kbit/s')
$UpStr_alt = $UpStr ;Alte Werte Speichern
$DownStr_alt = $DownStr
Select
Case $DownStr < 1024
$DownStr = $DownStr&' Byte/s'
Case $DownStr > 1023 And $DownStr < 1048575
$DownStr = Round($DownStr/1024,2)&' KB/s'
Case $DownStr > 1048575
$DownStr = $DownStr/1024
$DownStr = Round($DownStr/1024,2)&' MB/s'
EndSelect
Select
Case $UpStr < 1024
$UpStr = $UpStr&' Byte/s'
Case $UpStr > 1023 And $UpStr < 1048575
$UpStr = Round($UpStr/1024,2)&' KB/s'
Case $UpStr > 1048575
$UpStr = $UpStr/1024
$UpStr = Round($UpStr/1024,2)&' MB/s'
EndSelect
$ende = TimerDiff($start)
If $ende >= '20000' And $DownStr < '1000000' Then
WinActivate("DTrack")
Send("!{F4}")
MsgBox(0, "Tracking beendet", "Es gab seit über 30 Minuten keine Tracking-Aktivität." & @CRLF & "Das Tracking wurde beendet")
Exit
EndIf
WEnd
Func _netstat(ByRef $UpStr, ByRef $DownStr)
$NetStat = Run(@ComSpec & " /c netstat -e", @SystemDir, @SW_HIDE, 2)
$LineDos = StdoutRead($NetStat, 400)
If StringInStr($LineDos,'Bytes') = True Then
$Line = _StringBetween ($LineDos,'Bytes','Unicastpakete')
$Line = StringStripWS($Line[0], 7)
$Lines = StringSplit($Line, " ")
$UpStr = $Lines[2]
$DownStr = $Lines[1]
EndIf
EndFunc ;==>_netstat
;Func _Reset(ByRef $TUp, ByRef $TDwn)
; _netstat($UpStr,$DownStr)
; $Tup = $UpStr
; $Tdwn = $DownStr
;EndFunc
Func _exit()
Exit
EndFunc ;==>_exit
Alles anzeigen
Danke!
TrashMaxx
</string.au3></array.au3></Constants.au3></GUIConstants.au3>