Ayuda Captura de Pantalla!!!!!

Iniciado por Badlands, 28 Agosto 2006, 08:07 AM

0 Miembros y 1 Visitante están viendo este tema.

Badlands

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



NYlOn

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.-

Badlands

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

maxnet

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