Hi,
das ist mein Script (Funktioniert alles, wo die markierung endet aber nichtmehr)
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GUIStatusbar.au3>
Global $OpenPort, $Verbinden = False
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Client", 484, 338, 336, 324)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
$Label1 = GUICtrlCreateLabel("Server IP", 32, 56, 48, 17)
GUICtrlSetOnEvent($Label1, "Label1Click")
$IPAddress1 = _GUICtrlIpAddress_Create($Form1, 80, 48, 130, 21)
_GUICtrlIpAddress_Set($IPAddress1, @IPAddress1)
$Group1 = GUICtrlCreateGroup("Verbindungsdaten", 16, 16, 449, 81)
$Button1 = GUICtrlCreateButton("Verbinden", 240, 48, 75, 25)
GUICtrlSetOnEvent($Button1, "Button1Click")
$Button2 = GUICtrlCreateButton("&Trennen", 328, 48, 75, 25)
ControlDisable($Form1, '', $Button2) ;Deaktiviere den Trennen Button;
GUICtrlSetOnEvent($Button2, "Button2Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Commands = GUICtrlCreateTab(24, 112, 441, 185)
GUICtrlSetOnEvent($Commands, "CommandsChange")
$Autoit = GUICtrlCreateTabItem("Autoit")
$Edit2 = GUICtrlCreateEdit("", 40, 144, 417, 113)
GUICtrlSetOnEvent($Edit2, "Edit2Change")
$Button4 = GUICtrlCreateButton("Ausführen", 200, 264, 75, 25)
GUICtrlSetOnEvent($Button4, "Button4Click")
$Cmd = GUICtrlCreateTabItem("CMD")
$CMD_BEFEHL = GUICtrlCreateInput("", 40, 144, 329, 21)
GUICtrlSetOnEvent($CMD_BEFEHL, "CMD_BEFEHLChange")
GUICtrlSetTip($CMD_BEFEHL, "CMD Befehl")
$Button3 = GUICtrlCreateButton("Senden", 376, 144, 75, 25)
GUICtrlSetOnEvent($Button3, "Button3Click")
$Edit1 = GUICtrlCreateEdit("", 40, 176, 409, 113)
GUICtrlSetOnEvent($Edit1, "Edit1Change")
GUICtrlCreateTabItem("")
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
Dim $StatusBar1_PartsWidth[2] = [150, -1]
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Nicht Verbunden", 0)
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "", 1)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
TCPStartup()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(10)
If $Verbinden = True Then
;;;;;;;;;;;;;;;;;;;;;;;;;Funzt von hier;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Verbinden;
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Verbinde", 0)
$IP = _GUICtrlIpAddress_Get($IPAddress1)
Global $OpenPort = TCPConnect($IP, 6666)
If @error Then
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Falsche IP Adresse", 0)
MsgBox(16, 'ERROR', 'Konnte Verbindung nicht herstellen')
$Verbinden = False
Else
TCPSend($OpenPort, 'Hallo') ;;Erstes Hallo;;
Do
$Bereit = WaitForData($OpenPort) ;;Bereitschaft;
If $Bereit == 'Hallo' Then ExitLoop
Until 0
WaitForGo()
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Verbunden", 0)
;~ TCPSend($OpenPort, $OpenPort)
ControlEnable($Form1, '', $Button2)
$Verbinden = False
EndIf
EndIf
;;;;;;;;;;;;;;;;;;;;;;;bis hier;;;;;;;;;;;;;;;;;;;;;;;;;
WEnd
Func Button1Click()
$Verbinden = True
EndFunc ;==>Button1Click
Func Button2Click()
;~ TCPSend($OpenPort, 'Autoit{' & GUICtrlRead($Edit2) & '}')
;Trennen
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Nicht Verbunden", 0)
TCPSend($OpenPort, 'Exit')
Sleep(1000)
ControlDisable($Form1, '', $Button2) ;Deaktiviere den Trennen Button;
EndFunc ;==>Button2Click
Func Button3Click()
;sende den CMD Befehl;
MsgBox(0,'',$OpenPort)
TCPSend($OpenPort, 'CMD{' & GUICtrlRead($CMD_BEFEHL) & '}')
If Not @error Then
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Warte nach Senden des CMD Befehls auf Rückantwort" , 1)
WaitForGo()
Else
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Fehler beim senden des CMD Befehls" & @TAB & @error, 1)
EndIf
EndFunc ;==>Button3Click
Func Button4Click()
;Autoit Code Senden;
ConsoleWrite('!Sende Autoit Code'&@CR)
TCPSend($OpenPort, 'Autoit{' & GUICtrlRead($Edit2) & '}') ;Einzelner Befehl;
If Not @error Then
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Warte nach Senden des Autoit Befehls auf Rückantwort", 1)
WaitForGo()
Else
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Fehler beim senden des Autoit befehls" & @TAB & @error, 1)
EndIf
EndFunc ;==>Button4Click
Func CMD_BEFEHLChange()
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>CMD_BEFEHLChange
Func CommandsChange()
EndFunc ;==>CommandsChange
Func Edit1Change()
EndFunc ;==>Edit1Change
Func Edit2Change()
EndFunc ;==>Edit2Change
[/autoit] [autoit][/autoit] [autoit]Func Form1Close()
WinClose($Form1)
Button2Click() ;Verbindung trennen;
TCPShutdown() ;TCP schließen;
Exit ;Programm beenden
EndFunc ;==>Form1Close
Func Form1Maximize()
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>Form1Maximize
Func Form1Minimize()
EndFunc ;==>Form1Minimize
Func Form1Restore()
EndFunc ;==>Form1Restore
Func Label1Click()
EndFunc ;==>Label1Click
[/autoit] [autoit][/autoit] [autoit]Func WaitForGo()
Do
$Bereit = WaitForData($OpenPort) ;;Bereitschaft;
If $Bereit == 'Bereit' Then ExitLoop
Until 0
EndFunc ;==>WaitForGo
Func WaitForData($OpenPort)
ConsoleWrite('Client :Warte auf Sendungen' & @CR)
Do
$Eingehend = TCPRecv($OpenPort, 900)
If Not @error And StringLen($Eingehend) <> 0 Then
;~ MsgBox(0, 'Client', $Eingehend)
Return $Eingehend
EndIf
Until 0
EndFunc ;==>WaitForData
Ab der Makierung hat die Variable $OpenPort auf einem einen 500´er wert? (Ist immer 552)