Hallo Zusammen,
ich habe mit dem nachfolgenden Script Probleme - aber nur auf gewissen Computern. Bei manchen läuft es! (Leider konnte ich keine Regelmässigkeit feststellen)
Das Problem ist, dass das Script als AU3 funktioniert! Kein Fehler, alles I.O!
Wenn ich es als EXE kompilliere, funktioniert es nicht mehr!
Hier der Code:
Spoiler anzeigen
Dim Const $MAC = "XXXXXXXXXXXX"
Dim Const $PCName = "PCNamen"
Dim $Broadcast, $IP, $BroadcastIP, $Error
TCPStartup()
$IP = TCPNameToIP($PCName)
TCPShutdown()
If $IP = "" Then
$BroadcastIP = "255.255.255.255"
Else
$BroadcastIP = StringLeft($IP, StringInStr($IP, ".", 0, -1)) & "255"
EndIf
UDPStartup()
$Broadcast = UDPOpen($BroadcastIP, 9, 1)
MsgBox(0,"","UDP-Error: " & @error)
$ReturnValue = UDPSend($Broadcast, _MagicPacket($MAC))
$Error = @error
UDPCloseSocket($Broadcast)
UDPShutdown()
MsgBox(0, "", "PC-Namen: " & $PCName & @LF & "IP: " & $IP & @LF & "IP-Broadcast: " & $BroadcastIP & @LF & "UDP Bytes gesendet: " & $ReturnValue & @LF & "UDP Error-Message: " & $Error)
[/autoit] [autoit][/autoit] [autoit]Func _MagicPacket($sMac)
If Not IsBinary($sMac) Then $sMac = Binary('0x' & StringRegExpReplace($sMac,'(0x)|[^A-Za-z0-9]', ''))
Local $binPacket = Binary('0xFFFFFFFFFFFF')
For $i = 1 To 16
$binPacket &= $sMac
Next
Return $binPacket
EndFunc
In AU3 ist die erste Messagebox = 0 (Kein UDP Fehler)
Und bei der zweiten werden 102 Bytes gesendet. Alles korrekt.
Wenn ich es als EXE kompilliere und ausführe, ist die erste Messagebox 10022!
Bei der zweiten werden 0 Bytes gesendet und die UDP Error-Message ist auf -2.
Woran könnte das liegen?