Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: LeandroA 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 (http://foro.elhacker.net/programacion_vb/alguien_sabe_como_puedo_capturar_la_pantalla_mas_rapido_o_mejor-t179087.0.html) 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.
(http://www.leandroascierto.com.ar/imagenes/Remote_Desktop.png)
Descargar (http://www.leandroascierto.com.ar/categoria/Proyectos/articulo/Escritorio%20Remoto.php)
Tags: Remote Desktop, visual basic, codigo de fuente, source code, vb6, Dowload, screen capture, capturar pantalla
-
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 (http://foro.elhacker.net/programacion_vb/alguien_sabe_como_puedo_capturar_la_pantalla_mas_rapido_o_mejor-t179087.0.html) 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.
(http://www.leandroascierto.com.ar/imagenes/Remote_Desktop.png)
Descargar (http://www.leandroascierto.com.ar/categoria/Proyectos/articulo/Escritorio%20Remoto.php)
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
-
Huahuahuahua... Love History...! ;D
-
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
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 (http://foro.elhacker.net/empty-t216122.0.html) pero suele producir un pequeño cuelgue o ignoracion del click cuando intentas abrir una carpeta.
Saludos.
-
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!!
-
list implementado el sistema de combinacion de teclas, estas fueron las modificaciones, quedo medio chanchada pero funciona bien.
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
-
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.
-
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.
-
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
-
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 (http://foro.elhacker.net/programacion_vb/alguien_sabe_como_puedo_capturar_la_pantalla_mas_rapido_o_mejor-t179087.0.html) 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.
(http://www.leandroascierto.com.ar/imagenes/Remote_Desktop.png)
Descargar (http://www.leandroascierto.com.ar/categoria/Proyectos/articulo/Escritorio%20Remoto.php)
Tags: Remote Desktop, visual basic, codigo de fuente, source code, vb6, Dowload, screen capture, capturar pantalla
-
Está en el blog de Leandro.
-
Está en el blog de Leandro.
Amigo me puede decir donde esta eso?
Gracias.
-
(https://i.snag.gy/aq9xT0.jpg)
Aqui esta:
(https://i.snag.gy/J6Fekg.jpg)
:-)
-
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ú