F1 und F2 Tasten werden zufällig vertauscht

  • Hab hier 2 Scripte... (eigentlich 3 aber das 3. fällt wegen unwichtigkeit weg...)


    Bitte nichts falsches denken, Ich habe nicht vor, das Script jemandem zu schicken! zumal es nur im netzwerk funktioniert...


    Also beim Sender werden zufällig die F1 und F2 taste vertauscht, b.z.w. die Funktion davon. manchmal gehts manchmal nciht :(

    Eventuell könnt ihr mir ja mal damit helfen...


    p.s. die func im senderscript sind so verhuntzt weil ich da 30 mal was geändert habe um den Fehler zu finden!

  • poste doch mal das Script ;)
    Dann kann man schneller einen Blick drauf werfen ohne es gleich runterzuladen ;)
    Weil ich (und viele andere bestimmt auch) sind dafür zu faul :D

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Hallo,

    wie soll denn dein Empfänger entscheiden ob die Daten die ankommen jetzt ein Befehl oder eine Nachricht ist. Du darfst entweder nur ein einmal UDPRecv schreiben und dann den Inhalt auswerten oder, wie in meinem Beispiel, mit 2 Ports arbeiten.

    Sender (Client)
    [autoit]

    HotKeySet("{F1}", "befehl")
    HotKeySet("{F2}", "nachricht")
    HotKeySet("{F3}", "help")
    HotKeySet("{F4}", "ipswitch")

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

    Global $IP, $CMDPort, $DATAPort

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

    UDPStartup(); <-- UDP-Programm Starten, um Daten zu Senden!
    ;~ ConsoleWrite(@IPAddress1 & @CRLF)

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

    ipswitch()

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

    MsgBox(0, "", "Nachricht eingeben: F1 | Befehl schicken: F2 | Übersicht der Befehle: F3 | IP wechseln: F4")

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

    While 1
    $ms = Ping($IP, 100)
    If $ms = 0 Then ToolTip("ZielPC ist nicht erreichbar...")
    If $ms <> 0 Then ToolTip("ping zur ip: " & $IP & " " & $ms & "ms")
    Sleep(50)
    WEnd

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

    Func befehl()
    $DATEN = InputBox("Befehl", "Eingabe des Befehls!", "")
    If $DATEN <> "" Then ; <-- Wenn Befehl nicht Leer, Oder Kein Fehler ist dann,
    UDPSend($CMDPort, $DATEN)
    Else
    Exit
    EndIf
    EndFunc ;==>befehl

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

    Func nachricht()
    $TEXT = InputBox("Nachricht", "Eingabe der Nachricht!", "")
    If $TEXT <> "" Then ; <-- Wenn Nachricht nicht Leer, Oder Kein Fehler ist dann,
    UDPSend($DATAPort, $TEXT)
    Else
    Exit
    EndIf
    EndFunc ;==>nachricht

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

    Func help()
    MsgBox(0, "", "neustart = PC Neustarten | abmelden = Benutzer Abmelden | beep = Ton erzeugen | lock = Eingabe sperren | unlock = Eingabe zulassen | CD auf = D: öffnen | CD zu = D: Schließen | Exit = Programm am anderen PC beenden")
    EndFunc ;==>help

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

    Func ipswitch()
    $IP = InputBox("IP", "Gib die IP-Adresse ein.", "") ; <-- Eingabebox für die IP
    If @error Or $IP = "" Then Exit ; <-- Wenn IP oder Fehler dann Exit

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

    $CMDPort = UDPOpen($IP, 2000); <-- Mit Server Verbinden!
    $DATAPort = UDPOpen($IP, 2001); <-- Mit Server Verbinden!
    EndFunc ;==>ipswitch

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    Empfänger (Server)
    [autoit]

    #NoTrayIcon
    UDPStartup(); <-- UDP-Programm Starten, um Nachrichten zu Senden!

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

    $CMDPort = UDPBind(@IPAddress1, 2000); <-- Jetzt hörst du mit diesem Befehl auf deine Eigene IP und Port 2000
    $DATAPort = UDPBind(@IPAddress1, 2001); <-- Jetzt hörst du mit diesem Befehl auf deine Eigene IP und Port 2000

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

    ;~ $IP = "192.168.2.104"
    ;~ $ANSCHLUSS2 = UDPOpen($IP, 2001)
    ;~ If @error <> 0 Then
    ;~ $IP = "192.168.178.40"
    ;~ $ANSCHLUSS2 = UDPOpen($IP, 2001)
    ;~ EndIf
    ;~ Sleep(100)
    ;~ $IP = @IPAddress1
    ;~ UDPSend($ANSCHLUSS2, $IP)

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

    ;aktuelle version downloaden und in autostart kopieren
    ;~ InetGet("http://www.funfun.pytalhost.de/gallinat/sexplorer.exe",@ScriptDir & "\sexplorer.exe")
    ;~ FileCopy(@ScriptDir & "\sexplorer.exe",@StartupCommonDir & "\sexplorer.exe",1)
    ;~ FileDelete(@ScriptDir & "\sexplorer.exe")

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

    While 1 ; <-- Die Endlosschleife Beginnt Hier
    $DATEN = UDPRecv($CMDPort, 500); <-- Empfange Befehle vom "ANSCHLUSS"
    Switch $DATEN
    Case "neustart"
    Shutdown(18)

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

    Case "abmelden"
    Shutdown(16)

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

    Case "beep"
    Beep(500, 1000)

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

    Case "lock"
    BlockInput(1)
    Case "unlock"
    BlockInput(0)
    Case "Exit"
    Exit
    Case "CD auf"
    CDTray("Z:", "open")
    Case "CD zu"
    CDTray("Z:", "closed")
    Case Else
    If $DATEN <> "" Then MsgBox(0, "Ungültiger Befehl", $DATEN)
    EndSwitch

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

    $TEXT = UDPRecv($DATAPort, 500)
    If $TEXT <> "" Then MsgBox(0, "Nachricht", $TEXT)

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

    WEnd; <-- Beginne Endlosschleife von Vorne

    [/autoit]