Maximiertes Fenster erkenne + Portfrage

  • Hallo Leute,

    ich möchte für mich und einen Freund ein Programm schreiben, was anzeigt, was der andere am Computer macht, spielt.
    Also nicht die Richtung Spionage, sondern nur eine Info.
    Ich hatte mir das so vorgestellt:

    Eine GUI, die ganz simpel aufgebaut ist.

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Info - Tool", 195, 150, 702, 394)
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21)
    $Button1 = GUICtrlCreateButton("Minimieren!", 56, 96, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    So:
    Nun soll dieses Programm eben auf beiden Rechnern laufen und in den Input wird dann der Name des laufenden Spiels geschrieben - automatisch.

    Jetzt stehe ich vor folgendem Problem:
    Wir erkenne ich eine maximierte Anwendung?

    ------

    Dann als zweites die Portfrage:

    Mein Freund darf zuhause eben nicht an den Router dran, da sein Vater da ein "Kontrollfreak" ist.
    Man könnte ja was kaputt machen und er könnte ja durch freie Ports "dummheiten" treiben.
    Naja das ist nun mal so und wird sich auch nicht ändern.

    Gibt es denn einen Port, der standartmäßig überall frei ist?
    Darüber wollte ich dann die Kommunikation des Skriptes laufen lassen.

  • Wenn er sich mt Dir verbindet geht es, da ja nur auf die eigens initierte Anfrage geantwortet wird.
    Du musst ja auch nicht Port 80 von außen zugänglich machen um surfen zu können.

    Also musst Du den Server betreiben und einen Port bei Dir umleiten auf den PC wo dein Programm läuft.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Für das Vollbild Fenster: WinList & WinActive ?

    Dachte eigentlich es gab mal ne WinGetActive Func o_O

    Edit: Auf die schnelle gecodet.

    [autoit]

    ConsoleWrite(WinGetActive() & @CRLF)

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

    Func WinGetActive()
    $Windows = WinList()
    For $i = 1 To $Windows[0][0]
    If WinActive($Windows[$i][0]) <> 0 Then
    $Result = WinGetTitle($Windows[$i][0])
    Return($Result)
    EndIf
    Next
    EndFunc ;==>WinGetActive

    [/autoit]

    Einmal editiert, zuletzt von Sen (4. Oktober 2010 um 07:08)

  • Danke !
    Ich habe es jetzt so gelöst:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = @IPAddress1
    TCPStartUp()
    $MainSocket = TCPListen($IP, 65432, 100 )
    If $MainSocket = -1 Then Exit

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    _Refresh()
    _Exe()
    _Send()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    TCPSend($MainSocket, "Beep")
    EndSwitch
    WEnd

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

    Func _Refresh()
    While 1
    Global $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket >= 0 Then
    Do
    $Recv = TCPRecv($MainSocket, 100)
    Until $Recv <> ""
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    EndIf
    WEnd
    EndFunc

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

    Func _Send()
    If $ConnectedSocket >= 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

    [/autoit]

    Aber ich habe immer noch ein Problem:
    Ich bekomm dieses Vorhaben leider nicht "endlos" hin.
    Also von meiner Logik nicht.

    Kann mir hier noch jemand helfen?

    Edit:

    Server:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPListen($IP, 65432, 100 )
    If $MainSocket = -1 Then Exit

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    _Refresh()
    _Exe()
    _Send()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    TCPSend($MainSocket, "Beep")
    EndSwitch
    WEnd

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

    Func _Refresh()
    While 1
    Global $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket >= 0 Then
    Do
    $Recv = TCPRecv($MainSocket, 100)
    Until $Recv <> ""
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    EndIf
    WEnd
    EndFunc

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

    Func _Send()
    If $ConnectedSocket >= 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

    [/autoit]

    Client:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPConnect($IP, 65432)
    If $MainSocket = -1 Then
    MsgBox (0, "Server aus", "Server nicht gestartet")
    Exit
    EndIf

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Benne?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    _Refresh()
    _Exe()
    _Send()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    TCPSend($MainSocket, "Beep")
    EndSwitch
    WEnd

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

    Func _Refresh()
    While 1
    If Ping($IP) <> 0 Then
    Do
    $Recv = TCPRecv($MainSocket, 100)
    Until $Recv <> ""
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    Else
    MsgBox (0, "Server aus", "Server ist nicht gestartet")
    EndIf
    WEnd
    EndFunc

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

    Func _Send()
    If Ping($IP) <> 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von PokerFace (4. Oktober 2010 um 17:31)

  • was meinst du mit nicht endlos ?

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Also ich wollte, dass diese einzelnen Funktionen immer ausgeführt werden.
    Nur wenn die z.B in eine while-schleife setze, dann hängt das ja wieder bei der Do Schleife in einer der Funktionen.
    Ich verzweifle da langsam dran.
    Das heißt, dass immer geguckt werden soll, ob ein Status auszulesen ist.
    Dann die eigene Anwendung in eine Variable senden und wieder warten etc..

  • Setz die Befehle doch in eine While.

    Also


    [autoit]


    While 1

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

    _Refresh()
    Wend

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

    dann musst du Refresch die While raus amchen, da es ja sowieso immer wieder aufgerufen wird.


    Ausserdem wundert es mich das du nie den Wert $Win absendest, so kann ja garnichts ankommen...

  • Das mach ich doch mit:

    [autoit]

    TCPSend($Mainsocket, _Exe())

    [/autoit]

    Edit:
    Momentan siehts so aus:
    Server:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPListen($IP, 65432, 100 )
    If $MainSocket = -1 Then Exit

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    WEnd

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

    Func _Refresh()
    While 1
    Global $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket >= 0 Then
    Do
    $Recv = TCPRecv($MainSocket, 100)
    Until $Recv <> ""
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    EndIf
    WEnd
    EndFunc

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

    Func _Send()
    If $ConnectedSocket >= 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]

    Client:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPConnect($IP, 65432)
    If $MainSocket = -1 Then
    MsgBox (0, "Server aus", "Server nicht gestartet")
    Exit
    EndIf

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Benne?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    Sleep (100)
    WEnd

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

    Func _Refresh()
    While 1
    If Ping($IP) <> 0 Then
    Do
    $Recv = TCPRecv($MainSocket, 100)
    Until $Recv <> ""
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    Else
    MsgBox (0, "Server aus", "Server ist nicht gestartet")
    EndIf
    WEnd
    EndFunc

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

    Func _Send()
    If Ping($IP) <> 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von PokerFace (6. Oktober 2010 um 15:39)

  • Also, in der Func senden() ist die Variable $ConnectedSocket nicht deklariert, da man leider keine Variablen verwenden kann, die in einer anderen Func erstellt werden. (Das find ich nervig, da es manchmal sehr wichtig ist und man sonst das ganze script umschreiben muss :wacko: )

  • Durch das "Global" ist doch eine Variabel außerhalb der Funktion Nutzbar oder?

    Edit:
    Jetzt hab ich alle Tipps aus diesem Thread mal angewandt:
    Server:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPListen($IP, 65432, 100 )
    If $MainSocket = -1 Then Exit

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    Sleep(100)
    WEnd

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

    Func _Refresh()
    Global $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket >= 0 Then
    $Recv = TCPRecv($MainSocket, 100)
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    EndIf
    EndFunc

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

    Func _Send()
    If $ConnectedSocket >= 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]

    Client:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $IP = "127.0.0.1"
    TCPStartUp()
    $MainSocket = TCPConnect($IP, 65432)
    If $MainSocket = -1 Then
    MsgBox (0, "Server aus", "Server nicht gestartet")
    Exit
    EndIf

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Benne?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    Sleep (100)
    WEnd

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

    Func _Refresh()
    If Ping($IP) <> 0 Then
    $Recv = TCPRecv($MainSocket, 100)
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    Else
    MsgBox (0, "Server aus", "Server ist nicht gestartet")
    EndIf
    EndFunc

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

    Func _Send()
    If Ping($IP) <> 0 Then
    TCPSend($MainSocket, _Exe())
    EndIf
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then
    $Win = "Nichts"
    EndIf
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]

    Leider immer noch kein Erfolg.
    Irgendwie verlier ich gerade den Überblick, warum es nicht klappt X(

  • Nein das mit dem Global funzt. nicht.

    (es kommt keine Fehlermeldung weil das script nie zu dem gebrauch der variable kommt)

    Ich bin die ganze zeit am rum experimentieren... kann aber noch dauern ich bin kein TCP Ass^^

  • BadBunny:
    Das mit dem Globals stimmt so nicht ganz... Wenn du eine Globale Variable benötigst, musst du sie vor den Funktionen setzen und nicht erst in einer Funktion! Innerhalb von Funktionen sind diese Local, nicht Global; auch wenn du sie so Deklarierst!

    Also vor oder nach deiner GUI 'Global $ConnectedSocket' setzen und Zeile 29 in '$ConnectedSocket = TCPAccept($MainSocket)' ändern. Dann ist die Variable in jeder Funktion mit dem Wert 'TCPAccept($MainSocket)' verfügbar. Somit ist auch der If Befehl von Zeile 41 jetzt ausführbar!
    Musst mal den 'Server' so probieren, obs Funzt weiß ich net :whistling: Aber das wahren offensichtliche Fehler

    Grüsse von Techmix!

  • So...
    Kompiliere mal beide Scripte und teste es mal, sollte es immer noch nicht funzen liegt es eindeutig an den TPC-Funktionen (mit denen ich mich nicht auskenne). Auf jeden Fall enthält dein Script jetzt keine Fehler mehr!

    Server
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    TCPStartUp()
    Global $ConnectedSocket, $MainSocket, $IP = "127.0.0.1"
    $MainSocket = TCPListen($IP, 65432, 100 )
    If $MainSocket = -1 Then Exit

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Nicolas?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    Sleep(100)
    WEnd

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

    Func _Refresh()
    $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket >= 0 Then
    $Recv = TCPRecv($MainSocket, 100)
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    EndIf
    EndFunc

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

    Func _Send()
    If $ConnectedSocket >= 0 Then TCPSend($MainSocket, _Exe())
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then $Win = "Nichts"
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]
    Client
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $MainSocket, $IP = "127.0.0.1"

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

    TCPStartUp()
    $MainSocket = TCPConnect($IP, 65432)
    If $MainSocket = -1 Then
    MsgBox (0, "Server aus", "Server nicht gestartet")
    Exit
    EndIf

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

    $Form1 = GUICreate("Info - Tool", 195, 150, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Ende")
    $Label1 = GUICtrlCreateLabel("Was macht Benne?", 48, 32, 102, 17)
    $Input1 = GUICtrlCreateInput("", 40, 56, 121, 21, $ES_READONLY)
    $Button1 = GUICtrlCreateButton("Beep!", 56, 96, 75, 25, $WS_GROUP)
    GUICtrlSetOnEvent ($Button1, "_Beep")
    GUISetState(@SW_SHOW)

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

    While 1
    _Refresh()
    _Send()
    Sleep (100)
    WEnd

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

    Func _Refresh()
    If Ping($IP) <> 0 Then
    $Recv = TCPRecv($MainSocket, 100)
    If $Recv = "Beep" then
    Beep (500, 1000)
    Else
    GUICtrlSetData ($Input1, $Recv)
    EndIf
    Else
    MsgBox (0, "Server aus", "Server ist nicht gestartet")
    EndIf
    EndFunc

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

    Func _Send()
    If Ping($IP) <> 0 Then TCPSend($MainSocket, _Exe())
    EndFunc

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

    Func _Exe()
    $Win = WinGetTitle("[active]")
    If $Win = 0 Then $Win = "Nichts"
    Return $Win
    EndFunc

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

    Func _Ende()
    TCPShutdown()
    Exit
    EndFunc

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

    Func _Beep()
    TCPSend($MainSocket, "Beep")
    EndFunc

    [/autoit]

    P.S:
    Das du die IP anpassen musst weißt du ja, oder?!?

  • Danke !
    Aber leider funktioniert das immer noch nicht.
    Es werden anscheinend einfach keine Daten übermittelt. :thumbdown:

    • Offizieller Beitrag

    Aber leider funktioniert das immer noch nicht.


    Äh, du willst doch, dass du Hilfe bekommst. Mit dieser überaus präzisen Fehlerbeschreibung ( :rofl: ) kannst du niemanden hinterm Ofen vorlocken.
    Es gibt extra ein Tut, "Wie frage ich richtig" - oder ähnlich. Bemühe mal die SuFu und nimm dir die dortigen Tipps zu Herzen.

  • Also BugFix ich glaube, dass ich weiß, wie man fragt.
    Bin ja schließlich schon lange hier.

    Ich hab ja druntergeschrieben:
    Es werden keine Daten gesendet.
    Das heißt, dass beide "Status" Felder leer bleiben.