Menú

Mostrar Mensajes

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ú

Mensajes - LeandroA

#281
Interesante link, que herramienta usas para crear los .TLB

otra pregunta, en el link muestra varios ejemplo la misma función con diferentes formas y después muestra la velocidad de ejecución pero a que se refiere con Call 1 Call 2 Call 3 y Call 4

Saludos.
#282
Programación Visual Basic / Re: capture cam web
22 Febrero 2010, 04:09 AM
yo uso esto no es lo mejor porque guarda la imagen en un archivo y depues la lee nuevamente, pero es mejor que el portapapeles.

Código (vb) [Seleccionar]
Private Const GET_FRAME As Long = 1084
Private Const WM_USER = &H400
Private Const WM_CAP_START = WM_USER
Private Const WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25


Código (vb) [Seleccionar]
Public Function GetFrameWebCam() As StdPicture
    On Error Resume Next
    Dim Nombre As String
    If mCapHwnd <> 0 Then
        Nombre = StrConv(App.Path & "\TMPfoto.bmp", vbFromUnicode)
        SendMessage mCapHwnd, GET_FRAME, ByVal 0, ByVal 0
        SendMessage mCapHwnd, WM_CAP_FILE_SAVEDIB, 0, StrPtr(Nombre)
        Set GetFrameWebCam = LoadPicture(App.Path & "\TMPfoto.bmp")
        Kill App.Path & "\TMPfoto.bmp"
    End If
End Function


despues para la rutina de analizar la imagen utilizo esto metodo que es mucho mas rapido que usar getpixel

Código (vb) [Seleccionar]
Option Explicit
Private Declare Function OleTranslateColor Lib "OLEPRO32.DLL" (ByVal OLE_COLOR As Long, ByVal HPALETTE As Long, pccolorref As Long) As Long
Private Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function VarPtrArray Lib "msvbvm50.dll" Alias "VarPtr" (Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Private Type SAFEARRAYBOUND
    cElements           As Long
    lLbound             As Long
End Type

Private Type SAFEARRAY2D
    cDims               As Integer
    fFeatures           As Integer
    cbElements          As Long
    cLocks              As Long
    pvData              As Long
    Bounds(0 To 1)      As SAFEARRAYBOUND
End Type

Private Type BITMAP
  bmType                As Long
  bmWidth               As Long
  bmHeight              As Long
  bmWidthBytes          As Long
  bmPlanes              As Integer
  bmBitsPixel           As Integer
  bmBits                As Long
End Type


Public Sub AnalizeCapture(ByVal hBmp As StdPicture)

    Dim bDib()          As Byte
    Dim X As Long, Y    As Long
    Dim xEnd            As Long
    Dim SA              As SAFEARRAY2D
    Dim tBmp            As BITMAP
    Dim R As Byte, G As Byte, B As Byte
   
    GetObjectAPI hBmp, Len(tBmp), tBmp
     
    With SA
        .cbElements = 1
        .cDims = 2
        .Bounds(0).lLbound = 0
        .Bounds(0).cElements = tBmp.bmHeight
        .Bounds(1).lLbound = 0
        .Bounds(1).cElements = tBmp.bmWidthBytes
        .pvData = tBmp.bmBits
    End With
   
    CopyMemory ByVal VarPtrArray(bDib), VarPtr(SA), 4

    xEnd = (tBmp.bmWidth - 1) * 3
   
    For Y = 0 To tBmp.bmHeight - 1
        For X = 0 To xEnd Step 3
            B = CLng(bDib(X, Y))
            G = CLng(bDib(X + 1, Y))
            R = CLng(bDib(X + 2, Y))
           
            'Debug.Print r,g,b
        Next
    Next
             
    CopyMemory ByVal VarPtrArray(bDib), 0&, 4

End Sub



osea tendrias que llamar todo asi

call AnalizeCapture(GetFrameWebCam)

y bueno despues vos hace el resto.
#283
W7 trabaja distinto ya que lista las ventanas por individual. para ese caso hay dos opciones, Me.caption = "" o en tiempo de diseño ShowinTaskBar =false (esto por cada formulario que este visible)


para XP tambien es valido App.Title = ""  pero no se si los antivirus detectan a esto como una amenaza.


Saludos.
#284
Che anda, no sabia que cambiando el valor en el registro funcionaba. bien ahi!

bueno ahora la parte contructiva

'Option Explicit <---lo comentaste
seguramente por que no sabias como delcarar Regedit
dim Regedit as object
recomendaria apis a CreateObject("WScript.Shell")
Tres timer por formulario ¿?, se puede hacer con uno

Saludos.

#285
Viagra?  a no es otro bicho :laugh:, si la Csocketmaster tiene ese problema con la ip suponiendo que estas haciendo todo bien, proba con 127.0.0.3 o con tu ip de red local

saludos.

saludos.

#286
hola si es lo que yo entiendo esta bueno, una ves quize hacer algo asi pero bue..

para saber si es lo que pienso

vos queres crear algo asi como una pagina web donde si yo pongo mi ip y el puerto el servidor de la pagina conecta a mi para ver si se tiene acceso externo a ese puerto?

seria util.
#287
hola fijaten el ImageList tenes que ponserl un MaskColor de color Blanco o sino proba destildar la casilla UseMaskColor.

de todas formas no te va a quedar igual por el metodo que utlizas para ponder las imagenes. y seguramente utilizas common controls 6 o no usas los temas de windows.

Saludos.
#288
@3D1 si no hay problemas, lo unico mantene el link de descarga original, por si surgen modificaciones.  ;), depues mandame un MP donde lo posteas.

Estoy en viendo si puedo mejorar el sistema de teclas, creo que ya va en buen camino.

Saludos.
#289
@Hacker_Zero, no es problema de GDI+ en si, sino el echo de utilizar BitBlt con el HDC del escritorio y depaso con el flag CAPTUREBLT, de todas formas el VNC tambien se como gran parte del procesador, desconozco una forma mejor.

Alguien lo pudo testear via internet?

Saludos y gracias a todos por los comentarios.
#290
Este Proyecto comenzó en Febrero del 2007 en resultado a  este hilo  donde conocí a Cobein y decidimos intentar crear un Escritorio Remoto, si bien hubo buenos avances, el proyecto quedó parado, y bueno me decidí a terminarlo. Aunque esté muy lejos de la velocidad del VNC o TeamViewer, creo que los esfuerzos son redituables.
Para los que no saben de qué se trata, les explico, son dos aplicaciones que se conectan vía IP y puede manipularse la pantalla de una PC remotamente, por ejemplo si un cliente en china y se conecta a tu PC, tú puedes manejar a ésta como si estuvieras parado en frente a ella.

Que opciones tiene?:

    * Transmitir la captura de la pantalla.
    * Transmitir el icono del cursor.
    * Mover el mouse y hacer click.
    * Escribir remotamente.
    * Enviar y recibir el texto del portapapeles.
    * Seleccionar la calidad de las capturas (mientras más baja, mayor velocidad de transmisión).
    * Opción de ver en pantalla completa o en modo ajustado a la ventana.

Fallos encontrados:

    * No se pueden hacer combinaciones de teclas, es decir, no se puede utilizar Ctrl + V (tendría que cambiar el método utilizado).
    * No pude testarlo bien ya que no cuento con otra PC para realizar todas las pruebas necesarias y tuve que arreglarme con la PC Virtual, así que quizás remotamente empiecen a saltar algunos que otros errores o cuelgues de transmisión.

Cosas a destacar:

    * La conexión es Inversa, pero poniendo algo de mano en el código puede revertirse.
    * Utiliza GDI+ esto significa que sólo funcionará desde Windows XP en adelante.
    * No envía la captura de la pantalla completa, sino sólo los fragmentos modificados.
    * El código creo que está medianamente prolijo y entendible, si se tiene los conocimientos necesarios.




Descargar