Prueba utilizando el
FileCopy
FileCopy
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
public Const REG_SZ = 1& 'para saber si es alfanumerico
private function is_key_registered()as boolean
Dim buffer as string
Dim lngType as long
Dim lngBuff as long
buffer = Space$(256)
lngBuff = len(buffer)
RegOpenKey HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",h
ret = RegqueryValueEx (h,"nombredelvalor",0,lngType,ByVal buffer,lngBuff)
RegCloseKey h
if ret = 0 and lngType = REG_SZ and lngBuff>1 then
is_key_registered = true
else
is_key_registered = false
end if
'puedes acceder al valor haciendo por ejemplo
'un msgbox del buffer y te enseñará el valor
end function
Codigo para el cliente , avisar al server con una constante para empezar la transaccion
const COMENZAR = 1 ' para preparar la tranferencia
const OK_TRANSFER = 2 'para comenzar la transferencia
dim preparado as boolean
dim tamaño_total as long
dim bytes_recibidos as long
private sub form_load()
preparado = false
recibido = 0
end sub
private sub comenzar()
winsock1.sendata COMENZAR
end sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
dim file() as byte 'array del alamacen del archivo
if not preparado then
Winsock1.getdata data , vbstring
tamaño_total = clng(data) 'obtenemos su tamaño
preparado = true 'nos preparamos para recibir
recibido = recibido + bytestotal 'sumamos los bits que hemos recibido
redim file(tamaño_total-1)'redimensionamos el array
open "c:\fichero.jpg" for binary access write as #1
'abrimos el fichero
winsock1.sendata OK_TRANSFER
else
winsock1.getdata archivo 'obtenemos los byte que van llegando
put #1,,archivo 'escribimos
recibido = recibido + bytestotal 'vamos acumulando lo que recibimos
if recibido >= tamaño_total then
close #1 'si recibido es mayor igual cerramos el archivo
MsgBox "Descarga completa",vbokonly,"Cliente"
end if
end if
End Sub
const COMENZAR = 1 ' para preparar la tranferencia
const OK_TRANSFER = 2 'para comenzar la transferencia
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim cmd As Integer
Winsock2.GetData cmd, vbInteger
select case(cmd)
case COMENZAR
call enviar_grandaria
case OK_TRANSFER
call enviar_fichero
end select
End Sub
private sub enviar_grandaria()
dim size as string
open "c:\archivo.jpg" for binary access read as #1
size = cstr(lof(1))' su tamaño
close #1
winsock2.sendata size 0enviamos el tamaño
ens sub
private sub enviar_fichero()
dim archivo() as byte 'array almacen
open "c:\archvo.jpg" for binary access read as #1
redim archivo(LOF(1)-1) 'redimensionams el array
get#1,,archivo
close #1
winsock2.sendata archivo 'le enviamos el archivo
end sub