Estoy tratando de capturar la pantalla y enviarla a otro formulario por winsock, pero no logro enviarla, ya que nunca llega la imagen lo estoy haciendo asi:
EL FORM QUE QUIERO QUE LA RECIVA:
Dim datos As String
ws.GetData datos
End Sub
Open "e:\captura.bmp" For Binary As #1
Put #1, , datos
Close #1
EL FORM QUE ENVIA LA CAPTURA
FUNCION QUE SAQUE DEL FORO:
Private Function Captura_Screen()
Clipboard.Clear
'capturamos
keybd_event 44, 0, 0, 0
keybd_event 44, 0, KEYEVENTF_KEYUP, 0
'mientras no se pueda cojer el contenido
Do While Clipboard.GetData = False
DoEvents
Loop
Picture1.Picture = Clipboard.GetData
'borramos el portapapeles
Clipboard.Clear
SavePicture Picture1.Picture, "e:\sht.bmp"
Do While Len(Dir("e:\sht.bmp")) = 0
DoEvents
Loop
'ya se ha guardado el archivo
End Function
Private Sub Command1_Click()
Call Captura_Screen
Dim imagen As String
Open "e:\sht.bmp" For Binary As #1
Get #1, , imagen
Close #1
ws.SendData imagen
End Sub
PD:se que es un tema comentado pero no se que pasa en teoria creo que me tendria que funcionar.
Gracias
A simple vista, hay un error aca:
Get #1, , imagen
Para usar GET primero tenes que hacer un buffer. Para eso haces:
imagen = Space(LOF(1)) 'Que haga un espacio del largo del archivo
Despues pones lo de Get...
Despues tendrias que ver si los datos se envian correctamente (si llega al otro lado todo junto) y si se reciben sin problemas...
Saludos.-
que quedaria algo asi?:
Private Sub Command1_Click()
Call Captura_Screen
Dim imagen As String
Open "e:\sht.bmp" For Binary As #1
imagen = Space(LOF(1))
Get #1, , imagen
Close #1
ws.SendData imagen
End Sub
con ese codigo solo enviarias un trozo del archivo
Cita de: Badlands en 28 Agosto 2006, 22:17 PM
que quedaria algo asi?:
Private Sub Command1_Click()
Call Captura_Screen
Dim imagen As String
Open "e:\sht.bmp" For Binary As #1
imagen = Space(LOF(1))
Get #1, , imagen
Close #1
ws.SendData imagen
End Sub
'la variable vEnviado debe ser una variable global
'en el evento del objeto socket SendComplete escribe esto
' bEnviado=true
dim A as long, Imagen as string
open "e:\sht.bmp" for binary as #1
imagen=space(lof(1))
get #1,, imagen
close #1
for A=1 to len(imagen) step 2048
ws..sendata mid(imagen,a,2048)
do
doevents
if bEnviado=true then exit do
loop
bEnviado =false
next a