Autor Tema: [Group Proyect]Escritorio Remoto  (Leído 10872 veces)

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

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
[Group Proyect]Escritorio Remoto
« en: Febrero 04, 2010, 12:34:17 pm »
Coloco el tema en el foro para quienes quieran seguir mejorando el proyecto.
-------------------------
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

Tags: Remote Desktop, visual basic, codigo de fuente, source code, vb6, Dowload, screen capture, capturar pantalla
« última modificación: Febrero 04, 2010, 12:36:54 pm por LeandroA »

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #1 en: Febrero 04, 2010, 02:43:26 pm »
Coloco el tema en el foro para quienes quieran seguir mejorando el proyecto.
-------------------------
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

Tags: Remote Desktop, visual basic, codigo de fuente, source code, vb6, Dowload, screen capture, capturar pantalla


mira que linda la historia de amor entre leandro y cobein JAJAJAJAJA

volviendo al tema, esta bueno el proyecto. ya vamos a ver como usar las teclas en combinacion, imagino que con un hook al picture se puede lograr.

saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:[Group Proyect]Escritorio Remoto
« Respuesta #2 en: Febrero 04, 2010, 03:54:58 pm »
Huahuahuahua... Love History...! ;D
Miguel Núñez.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #3 en: Febrero 04, 2010, 05:11:12 pm »
jajaja quedo aputazado, che con respecto a lo de las teclas una idea pero no estoy seguro es obtener el foco de la ventan activa (child) y enviarle sendmensage tal cual como lo recibe el picture.

una buena forma de obtener la ventana que tiene el foco es esta
Código: [Seleccionar]
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type GUITHREADINFO
    cbSize As Long
    flags As Long
    hwndActive As Long
    hwndFocus As Long
    hwndCapture As Long
    hwndMenuOwner As Long
    hwndMoveSize As Long
    hwndCaret As Long
    rcCaret As RECT
End Type

Private Declare Function GetGUIThreadInfo Lib "user32.dll" (ByVal idThread As Long, ByRef pgui As GUITHREADINFO) As Long
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long


Public Function GetFocusHandle() As Long
    Dim GTI As GUITHREADINFO
    GTI.cbSize = Len(GTI)
    GetGUIThreadInfo GetWindowThreadProcessId(GetForegroundWindow, 0), GTI
    GetFocusHandle = GTI.hwndFocus
End Function


Private Sub Form_Load()
    Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
    Me.Caption = GetFocusHandle
End Sub

Anteriormente Cobein me havia pasado otra forma utilizando AttachThreadInput pero suele producir un pequeño cuelgue o ignoracion del click cuando intentas abrir una carpeta.

Saludos.

xmbeat

  • Kilobyte
  • **
  • Mensajes: 84
  • Reputación: +3/-1
  • la vida no tiene sentido sin Dios
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #4 en: Febrero 04, 2010, 09:25:35 pm »
me parece bien el proyecto, yo estaba haciendo algo muy muy parecido a esto. y creo que ya no tendre que finalizarlo por mi. Jaaa!!
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #5 en: Febrero 04, 2010, 10:40:34 pm »
list implementado el sistema de combinacion de teclas, estas fueron las modificaciones, quedo medio chanchada pero funciona bien.

Código: [Seleccionar]
        Case WM_CHAR, WM_CONTEXTMENU
            Dim Handle As Long
            Handle = GetFocusHandle
            If Handle <> 0 And tMSG.wParam <> vbKeyTab Then
                PostMessage Handle, tMSG.uMsg, tMSG.wParam, tMSG.lParam
            End If
           
        Case WM_SYSKEYUP, WM_SYSKEYDOWN

            If tMSG.uMsg = WM_SYSKEYDOWN Then
                keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY, 0
            Else
                keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
            End If
           
        Case WM_KEYDOWN, WM_KEYUP

            Select Case tMSG.wParam
                Case 112 To 123, 37 To 40, 92, vbKeyControl, vbKeyEscape, vbKeyScrollLock, vbKeyShift, vbKeySnapshot, vbKeyPause, vbKeyPrint, vbKeyTab, vbKeyReturn
               
                    If tMSG.wParam = vbKeySnapshot Then
                        keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY, 0
                    End If
               
                    If tMSG.uMsg = WM_KEYDOWN Then
                        keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY, 0
                    Else
                        keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
                    End If
                   
                Case Else
                    Handle = GetFocusHandle
                    If Handle <> 0 Then
                        SendMessage Handle, tMSG.uMsg, tMSG.wParam, tMSG.lParam
                    Else
                        If tMSG.uMsg = WM_KEYDOWN Then
                            keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY, 0
                        Else
                            keybd_event tMSG.wParam, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
                        End If
                    End If
                   
            End Select

El unico problema es que el formulario local tambien recibe ciertos comandos por ejemplo si pulsamos ALT + F4  este tambien se cierra. o la tecla de windows. pero bueno son cosas menores, lo malos es que podria llegar a quedar enganchada la tecla ALT (Izquierda del teclado) ya que nuestro formulario tiene menu y va a impedir un msg. y no es nada lindo si esto pasa.
la unica salida es hacer un hook al teclado e impedir mientras el picture tenga el foco que las teclas sean procesadas por windows (pc local).

Bue cha

pix0es0

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #6 en: Abril 11, 2010, 07:44:32 am »
Hola LeandroA.

Enhorabuena por el trabajo del proyecto.
Yo no tengo el Visual Basic 6, si en cambio el sharpdevelop que es un ide visual para visual basic net y c# entre otros, ademas es opensource. La direccion es: http://www.icsharpcode.net/OpenSource/SD/
A lo mejor seria interesante pasar el proyecto de visual basic 6 a net, ya sea visual basic.net o c#, ya que hay mucha gente que trabaja con dicho framework  y seguro que pueden aportar mucho al proyecto.
Ademas, tendria la ventaja de que segun como se programara se prodria utilizar en linux al compilarlo con el proyecto mono: http://es.wikipedia.org/wiki/Proyecto_Mono

Un saludo.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #7 en: Abril 13, 2010, 05:34:33 pm »
Hola interesante IDE me gusto es mucho más rapido que el vb.net para cargar. pero bueno por el momento sigo con vb6 por una cuestion de familiaridad.

Saludos.

Alfredo32231

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #8 en: Diciembre 28, 2016, 03:13:17 pm »
Hola todos, sera que pueden ayudarme con el enlace para descargar este proyecto, se que es un tema antiguo, pero en verdad me ayudaría demasiado para un proyecto que tengo

Alfredo32231

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #9 en: Diciembre 28, 2016, 03:17:10 pm »

Alguien por favor me puede ayudar con el código referido, ya que el enlace esta caído y me ayudaría demasiado en un proyecto propio que en el que estoy trabajando.



Coloco el tema en el foro para quienes quieran seguir mejorando el proyecto.
-------------------------
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

Tags: Remote Desktop, visual basic, codigo de fuente, source code, vb6, Dowload, screen capture, capturar pantalla


YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:[Group Proyect]Escritorio Remoto
« Respuesta #10 en: Diciembre 30, 2016, 09:48:46 pm »
Está en el blog de Leandro.
Me encuentras en YAcosta.com

antonio2005pe

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +0/-1
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #11 en: Febrero 04, 2017, 01:36:21 am »
Está en el blog de Leandro.
Amigo me puede decir donde esta eso?
Gracias.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:[Group Proyect]Escritorio Remoto
« Respuesta #12 en: Febrero 04, 2017, 11:05:58 am »



Aqui esta:




:-)
Me encuentras en YAcosta.com

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:[Group Proyect]Escritorio Remoto
« Respuesta #13 en: Febrero 05, 2017, 02:56:34 pm »

Estimado pix0es0


No es necesario migrar a .NET para que este proyecto corra en Linux.
Para el caso, en Linux tienes que instales Wine así como el runtime de Visual Basic,  los componentes (dll, ocx, tlb, etc) deben de estar en la misma carpeta en la que se encuentra el ejecutable de tu aplicación VB6 y listo.


Saludos, desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú