I started with programming a kind of DesktopRemote. For that, i need a live Desktop View. I want to realize that, with sending jpg screenshots per TCP.
;Server (Controlled) :
#include <TCP.au3>
#include <ScreenCapture.au3>
$iClient_PIP = @IPAddress1
$iPort = 1234
_ScreenCapture_Capture(@DesktopDir&"\DRServer.jpg")
$hScreenFile = FileOpen(@DesktopDir&"\DRServer.jpg")
$sScreenToSend = FileRead($hScreenFile)
SendIP($iClient_PIP,$iPort,$sScreenToSend)
;Client (Controller) :
#include <TCP.au3>
$iPort = 1234
$iScreenReceived = ReceiveIP(@IPAddress1,$iPort)
FileWrite(@DesktopDir&"\Picture Received.jpg",$iScreenReceived)
My #Include <TCP.au3> File:
#include <IE.au3>
#include <String.au3>
Func IP ()
$IE = _IECreate("wieistmeineip.de",0,0)
$IP = _StringBetween(_IEBodyReadHTML($IE),'<div class="title"><strong>','</strong></div>')[0]
Return $IP
EndFunc
$OwnIP = IP ()
$Main_Socket = 0
Func ChangeSocket ($IP_Address,$IP_Port)
TCPShutdown ()
$Main_Socket = 0
TCPCloseSocket($Main_Socket)
TCPStartup ()
$Main_Socket = TCPListen($IP_Address,$IP_Port)
EndFunc
Func SendIP ($IP_Addre,$IP_Por,$Data)
ChangeSocket ($IP_Addre,$IP_Por)
$New_Socket = TCPConnect($IP_Addre,$IP_Por)
$TCP_SEND = TCPSend($New_Socket,$Data)
If $TCP_SEND < 1 Then
MsgBox(0,"Error","Data couldn't be sent."&@CRLF&"Maybe the Receiver is offline."&@CRLF&"Maybe the IPAddress does not exist.")
Return -1
Else
Return 1
EndIf
ChangeSocket($OwnIP,$IP_Por)
EndFunc
Func ReceiveIP ($IP_Add,$IP_Po)
ChangeSocket($IP_Add,$IP_Po)
Do
$Accept = TCPAccept($Main_Socket)
Until $Accept <> -1
Do
$Received = TCPRecv($Accept,10000000000000000000000000000)
Until $Received <> ""
Return $Received
EndFunc
It works, but the Picture that arrives isn't completed.
How can i fix that?
(For first i just want to send 1 Screenshot.)