Transmitir una captura de pantalla entre un servidor y un cliente y mostrarla en un formulario (sin BackgroundImageLayout y maximized) desde PowerShell (Sockets TCP)
Servidor
##Server
$port=2051
$IPEndPoint=New-Object System.Net.IPEndPoint([IPAddress]::Any,$port)
$TcpListener=New-Object System.Net.Sockets.TcpListener $IPEndPoint
$TcpListener.Start()
$AcceptTcpClient=$TcpListener.AcceptTcpClient()
$GetStream=$AcceptTcpClient.GetStream()
$StreamReader=New-Object System.IO.StreamReader $GetStream
$ReadAllLines = $StreamReader.ReadToEnd()
$Bytes = ([system.Text.Encoding]::Default).GetBytes($ReadAllLines)
rm screenshotcopy.bmp
[System.IO.File]::WriteAllBytes('screenshotcopy.bmp',$Bytes)
#Creación del formulario
$Image=[system.drawing.image]::FromFile(".\screenshotcopy.bmp")
$form2 = [Windows.Forms.Form] @{
Text = 'Mi formulario'
BackgroundImage = $Image
Width = $Image.Width
Height = $Image.Height
BackgroundImageLayout = "None"
WindowState = "maximized"
FormBorderStyle = "None"
}
$form2.ShowDialog()
$StreamReader.Dispose()
$GetStream.Dispose()
$AcceptTcpClient.Dispose()
Cliente
[crayon-6a6188a2a4392944665348/]