Tengo un problema en relación con dos rectángulos (en servidor y cliente, respectivamente). El rectángulo rojo se dibuja en el lado del servidor, y el rectángulo con un agujero se crea en el lado del cliente. Pero el rectángulo con el agujero que se dibuja en el lado del cliente, nunca se queda en la misma posición que ya se definió en Server.
Todas las sugerencias son bienvenidas.
Por lo tanto, mi resultado hasta ahora esto es:
(http://i.stack.imgur.com/GGKoc.png)
Del lado del servidor
Dim mRect As Rectangle
Dim d
'=========================== DRAW RECTANGLE IN PICTUREBOX ===================================
Private Sub PictureBoxREMOTO_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBoxREMOTO.MouseDown
mRect = New Rectangle(e.X - d.x, e.Y - d.y, 0, 0)
PictureBoxREMOTO.Invalidate()
End Sub
Private Sub PictureBoxREMOTO_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBoxREMOTO.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim gp As New System.Drawing.Drawing2D.GraphicsPath
mRect = New Rectangle(mRect.Left, mRect.Top, e.X - d.x - mRect.Left, e.Y - d.y - mRect.Top)
PictureBoxREMOTO.Invalidate()
End If
End Sub
Private Sub PictureBoxREMOTO_Paint(sender As Object, e As PaintEventArgs) Handles PictureBoxREMOTO.Paint
Dim mRect2 = New Rectangle(mRect.Location, mRect.Size)
mRect2.Offset(d)
Using pen As New Pen(Color.Red, 3)
e.Graphics.DrawRectangle(pen, mRect2)
End Using
End Sub
Private Sub PictureBoxREMOTO_MouseUp(sender As Object, e As MouseEventArgs) Handles PictureBoxREMOTO.MouseUp
Dim MENSAJE As String = "HOLE:" & mRect.Left & ":" & mRect.Top & ":" & e.X - d.x - mRect.Left & ":" & e.Y - d.y - mRect.Top
ENVIO = System.Text.Encoding.UTF7.GetBytes(MENSAJE)
'mRect = New Rectangle(e.X - d.x, e.Y - d.y, 0, 0)
'PictureBoxREMOTO.Invalidate()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
d = PictureBoxREMOTO.PointToClient(PictureBoxREMOTO.Location)
End Sub
'=========================================================================================
Lado del cliente
Private j As Integer
Private z As Integer
Private l As Integer
Private m As Integer
Private Sub DDMain()
BeginInvoke(New Action(AddressOf Rise_DD))
End Sub
Private Sub Rise_DD()
Form2.m = j
Form2.n = z
Form2.o = l
Form2.p = m
Form2.Button1_Click(Me, Nothing)
End Sub
Public Sub ORDENES(ByVal ORDEN As String)
Dim PARTES As String() = ORDEN.Split(":")
POSICIONX = PARTES(1)
POSICIONY = PARTES(2)
Cursor.Position = New Point(POSICIONX, POSICIONY)
Select Case PARTES(0)
Case "HOLE"
'Coordinates of rectangle drawn on Server
j = PARTES(1)
z = PARTES(2)
l = PARTES(3)
m = PARTES(4)
DDMain()
'MessageBox.Show(PARTES(1) & " - " & PARTES(2) & " - " & PARTES(3) & " - " & PARTES(4)) 'Coordinates of rectangle drawed on Server
End Select
End Sub
Form2 del lado del cliente
Public m As Integer
Public n As Integer
Public o As Integer
Public p As Integer
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim mRect As Rectangle
Dim gp As New System.Drawing.Drawing2D.GraphicsPath
gp.AddRectangle(New Rectangle(0, 0, Me.Width, Me.Height))
mRect = New Rectangle(m, n, o, p)
gp.AddRectangle(mRect)
Me.Region = New Region(gp)
Me.Invalidate()
End Sub
Creo que no se te ha entendido exactamente lo que haces, ¿puedes describir los pasos tanto del lado del cliente como del lado del servidor?
Aquí
(http://tempsend.com/B7B870ADCA/4A2E/CLIENT_SERVER%20EXAMPLE.rar (http://tempsend.com/B7B870ADCA/4A2E/CLIENT_SERVER%20EXAMPLE.rar))
os dejo el enlace para descargar este ejemplo. Así que usted comprenderá mejor.
No virus, sólo el código fuente.
Bueno, nos dejas en la misma, porque aunque sabemos que quieres hacer un RAT, no especifícas qué es lo que quieres hacer con la imagen que recibes. Al parecer lo que dices es que la imagen aparece en distintas posiciones dentro del formulario o el picturebox, pero no entiendo por qué haces que varíe la localización de la imagen, ¿qué función debe cumplir eso o para qué? Explica qué es lo que pretendes, porque tu código es bastante ilegible, además de que no lo tienes comentado.
Si lo que quieres es que la imagen no cambie de posisión entonces dibújala con la posición fija en las coordenas (0, 0).
Saludos y por favor intenta dejar más claro lo que tu código pretende hacer para así poderte ayudar.
Already solved. Thank you friend.