Hmm habs mir schon gedacht, wollts aber eigentlich vermeiden^^ Okey danke.
Noch ein Problem. Bei den beiden Scripten sollte eigentlich jeweils eines der roten Quadrate bewegbar sein und dies auf die andere GUI übertragen. Ich such jetzt schon 2 Stunden nach dem Fehler, finde ihn aber einfach nicht. Die beiden Quadrate bewegen sich jeweils, allerdings überträgt es die Daten nicht, obwohl es eigentlich funktionieren sollte.
client.au3:
Spoiler anzeigen
#include <GuiConstants.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
OnAutoItExitRegister("_exit")
_GDIPlus_Startup()
TCPStartup()
$mainsocket = TCPListen("127.0.0.1", 5000)
HotKeySet("s", "_move")
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate("Client", 1000, 600)
[/autoit] [autoit][/autoit] [autoit]Global $iWidth = 400, $iHeight = 400
Global $aPos_Rect[4] = [0, 100, 200, 200]
Global $aPos_Rect2[4] = [300, 100, 200, 200]
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($gui) ;Grafikobjekt
$hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($gui)
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ;Pinsel
GUISetOnEvent(-3, "_exit")
GUIRegisterMsg(0x000F, "WM_PAINT")
GUISetState(@SW_SHOW)
While 1
$acceptedSocket = TCPAccept($mainsocket)
If $acceptedSocket <> -1 Then
$receivedData = TCPRecv($acceptedSocket, 1024)
$aPos_Rect[0] = $receivedData
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_INTERNALPAINT)
TCPCloseSocket($acceptedSocket)
EndIf
WEnd
Func _senden()
$socket = TCPConnect("127.0.0.1", 5001)
If $socket = -1 Then
MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!")
EndIf
$sendedBytes = TCPSend($socket, $aPos_Rect2[0])
If $sendedBytes = 0 Then
MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.")
EndIf
TCPCloseSocket($socket)
EndFunc
Func _exit()
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hGraphic2)
_GDIPlus_Shutdown()
Exit
EndFunc
Func _move()
$aPos_Rect2[0] += 2
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_INTERNALPAINT)
EndFunc
Func WM_PAINT()
_GDIPlus_GraphicsClear($hGraphic,0xFFF0F0F0)
_GDIPlus_GraphicsClear($hGraphic2,0xFFF0F0F0)
_GDIPlus_GraphicsFillRect($hGraphic, $aPos_Rect[0], $aPos_Rect[1], $aPos_Rect[2], $aPos_Rect[3], $hBrush)
_GDIPlus_GraphicsFillRect($hGraphic2, $aPos_Rect2[0], $aPos_Rect2[1], $aPos_Rect2[2], $aPos_Rect2[3], $hBrush)
EndFunc
TCPShutdown()
[/autoit]
server.au3:
Spoiler anzeigen
#include <GuiConstants.au3>
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
OnAutoItExitRegister("_exit")
_GDIPlus_Startup()
TCPStartup()
$mainsocket = TCPListen("127.0.0.1", 5001)
HotKeySet("w", "_move")
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate("Server", 1000, 600)
[/autoit] [autoit][/autoit] [autoit]Global $iWidth = 400, $iHeight = 400
Global $aPos_Rect[4] = [0, 100, 200, 200]
Global $aPos_Rect2[4] = [300, 100, 200, 200]
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($gui) ;Grafikobjekt
$hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($gui)
$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ;Pinsel
GUISetOnEvent(-3, "_exit")
GUIRegisterMsg(0x000F, "WM_PAINT")
GUISetState(@SW_SHOW)
While 1
$acceptedSocket = TCPAccept($mainsocket)
If $acceptedSocket <> -1 Then
$receivedData = TCPRecv($acceptedSocket, 1024)
$aPos_Rect2[0] = $receivedData
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_INTERNALPAINT)
TCPCloseSocket($acceptedSocket)
EndIf
WEnd
Func _senden()
$socket = TCPConnect("127.0.0.1", 5000)
If $socket = -1 Then
MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!")
EndIf
$sendedBytes = TCPSend($socket, $aPos_Rect[0])
If $sendedBytes = 0 Then
MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.")
EndIf
TCPCloseSocket($socket)
EndFunc
Func _exit()
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hGraphic2)
_GDIPlus_Shutdown()
Exit
EndFunc
Func _move()
$aPos_Rect[0] += 2
_WinAPI_RedrawWindow($gui, 0, 0, $RDW_INTERNALPAINT)
EndFunc
Func WM_PAINT()
_GDIPlus_GraphicsClear($hGraphic,0xFFF0F0F0)
_GDIPlus_GraphicsClear($hGraphic2,0xFFF0F0F0)
_GDIPlus_GraphicsFillRect($hGraphic, $aPos_Rect[0], $aPos_Rect[1], $aPos_Rect[2], $aPos_Rect[3], $hBrush)
_GDIPlus_GraphicsFillRect($hGraphic2, $aPos_Rect2[0], $aPos_Rect2[1], $aPos_Rect2[2], $aPos_Rect2[3], $hBrush)
EndFunc
TCPShutdown()
[/autoit]