FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Administración remota!!
Hola amigos delphinos me encuentro entre la espada y la pared, les comento para entrar en tema.Estoy continuamente trabajando remotamente instalando y configurando maquinas de clientes pero me suele pasar que mis clientes o le parece muy dificil decime su IP o Passord (VNC) para ingresar remotamente o peor no saben como abrir algun puerto TCP para realizar la conexion, gracias a este dolor de cabeza estoy diseñando algo parecido a un VNC con algunas mejoras administativa, la idea que tengo es que el cliente se conecte a la mesa de ayuda por medio de un ejecutable para chatear y si fuese necesario poder ingresar a la pc para realizar la reparcion o configuracion.
Para evitar el Firewall se me ocurrio que la aplicacion funcione inversamente que el VNC o sea el cliente tiene un socket cliente y yo un server (emularia un browser o saldria por el port 21)hasta ahi cerramaba pero ahora necesitaba enviar una imagen de la pc y actualizar solo los pixeles que cambiaban utilizando el siguiente codigo: para tomar una imagen: Y para tomar las diferencias:
pero noto que las imagenes generadas pesan 112Kb y el archivo de diferencias pesan mas que la imagen y que el recorrido de pixel a pixel es muy lento. A Alguien se le ocurre como optimizar el codigo o como puedo interactuar con las DLL del VNC Desde ya muchas gracias |
#2
|
||||
|
||||
Antes de meternos a reinventar la rueda, puedes usar alguna solución como UltraVNC SC. En este hilo se hablo de este tema, y se llego a una solución a prueba de tontos
Software Control Remoto, sin abrir puertos en routers Aunque si sigues queriendo hacerlo tu, te recomiendo un par de cosas. Primero, trabaja sobre imágenes bmp aunque luego las vayas a enviar como jpg, comparar dos jpeg puede ser problemático. Segundo no utilices la propiedad pixels del canvas, utiliza la propiedad Scanline del Bitmap es mucho mas rápido. |
#3
|
||||
|
||||
Cita:
No hay que abrir ningún puerto, ni saber ninguna IP, ni nada de nada, absolutamente cómodo y rápido |
#4
|
||||
|
||||
Aparte de lo dicho anteriormente, volvamos a tu pregunta original, por si a alguien le puede resultar útil. Yo enfocaría el problema de otra manera, en vez de mandar pixel a pixel, encontraría el rectángulo de la imagen que ha cambiado, lo copiara, lo comprimiría usando jpeg y lo mandaría junto con sus coordenadas. Por otro lado al recibirlo solo tendríamos que dibujar el rectángulo en las coordenadas indicadas. Al comprimir la imagen usando jpeg puede que obtengamos un feo efecto de borde, pero es un mal menor comparada con lo que ganamos en velocidad.
La ventaja son que al enviar un recuadro completo podemos usar formatos de compresión como jpeg, gif o png. La desventaja es que si la imagen tiene muchos cambios repartidos por toda la superficie, el cuadro resultante puede ser prácticamente del mismo tamaño que el original. Es decir, donde realmente se muestra eficaz es en imágenes donde los cambios están localizados en una parte concreta de la pantalla. Vamos con un poco de código:
Esta solución se puede mejorar bastante, un posible camino seria utilizar mas de un recuadro, mas pequeños, para localizar los cambios. Pero eso ya es otra historia ... |
#5
|
||||
|
||||
Gracias a ambos pero intentare hacer lo que me dijo seoane (hacerlo desde delphi)ya que puedo agregar muchas mejoras administrativa como ser: si el cliente tiene deuda, toda la info del hardaware, chat,etc aunque tienen razon de que no hay que reiventar la rueda por eso en un momento comente como interactuar con las DLL
pd:Estoy muy contento de ser parte de este sitio las respuestas son increblemente rapidas y uno puede evaluar varias postura de una idea |
#6
|
||||
|
||||
Hasta ahora solo logre esto pero nose como comparar y enviar solo la porcion que cambio
Última edición por acertij022 fecha: 03-10-2006 a las 23:48:18. |
#7
|
||||
|
||||
1º ante todo te pido disculpa por no leer tu pos seoane porque es la solucion.
Lo que no me sale ahora es redibujar la porción de BMP en el cliente en servidor (que se le entrega al cliente) use el siguiente codigo:
Y en el cliente (osea mi PC )coloco este codigo: Como lo indique en el codigo solo me funciona una unica ves el copiar un BMP en una parte de otro BMP Si a alguien sabe porque por favor me lo puden explicar o indicarme como solucionarlo. Desde ya muchas gracias a todos por los aportes |
#8
|
||||
|
||||
La verdad es que me pierdo entre tanto código. Pero hay algo que me llama la atención:
Entiendo que R son las coordenadas donde quieres dibujar el recuadro, pero ten en cuenta el 3 parámetro del método CopyRect es el recuadro de origen y no es el mismo que el de destino como tu indicas (menos cuando es la pantalla completa, por eso te funciona la primera vez). Yo haría algo como esto:
|
#9
|
||||
|
||||
jajaj me rio de mi mismo tenes razon seoane funciona perfecto ahora solo me falta emular el raton y el teclado.
MUCHISIMAS GRACIAS!!! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Administración de usuarios en DB2 desde Delphi | DanForever | Conexión con bases de datos | 0 | 24-04-2006 08:46:22 |
Administracion Interbase 7 | Rabata | Conexión con bases de datos | 1 | 13-10-2004 15:19:46 |
Administracion de Versiones | JorgeBec | Varios | 2 | 10-09-2004 11:28:32 |
Administracion remota | buitrago | Varios | 6 | 27-07-2004 19:57:12 |
Ayuda con administracion de archivos | Waldo | API de Windows | 1 | 09-07-2004 19:18:12 |
|