![]() |
Capturar imagen de ventana inactiva
Hola amigos, estoy desarrollando un pequeño programa para control remoto, tengo una aplicacion cliente y una server, la aplicacion cliente manda una peticion cada segundo al servidor y este le manda al cliente una imagen de una ventana todo esto por medio de sockets, esto funcionan bien, el problema es que al bloquear la sesion ("WIN+L") , la aplicacion cliente conecta bien pero de alguna manera la imagen de capatura que envia se vuelve en blanco, he probado con varias funciones para capturar la imagen pero creo que el problema no va por ahi, pareciera que al bloquear la sesion la ventana queda inactiva... :confused: .
lo que quiero hacer es que se puede capturar la imagen de la ventana aun bloqueada la session, me parece extraño ya que la aplicacion cliente conecta bien con la aplicacion server. :(
|
Hola look.
Tal vez te sirva impedir el bloqueo durante la duración de tu programa 'cliente' y restaurar la condición al finalizar, algo como:
Saludos :) |
Cita:
|
hola, parece complicado no, se me ocurre que tel vez si la misma aplicacion pudiera iniciar session en windows cuando el cliente se conecte esto permitiria que trabajara bien, ¿ sera posible esto?, ¿iniciar session desde mi aplicacion en windows sabiendo el usuario y clave?
|
Cuando una sesión es bloqueada, el sistema cambia de escritorio por lo que es imposible interactuar desde una aplicación que corre como otro usuario que no sea system. En WinXp si tu App corre como system puede cambiar al nuevo escritorio y capturar la pantalla de bloqueo. Si estás simulando entradas de teclado y ratón puedes iniciar o desbloquear la sesión en cuestión.
Saludos. |
Para documentar con código lo que expuse anteriormente propongo una función para apropiarse del escritorio que usa el sistema por defecto en un momento dado:
A la hora de capturar conviene antes repetir la secuencia:
Tu aplicación residente en el PC remoto deberá ser un servicio, como forma más fácil de correr como SYSTEM, pero con la dificultad de acceder al GUI. También podrá ser una simple App que se lance desde un servicio, por lo que será SYSTEM también. Para completar, conviene revisar los siguientes enlaces Lanzar una aplicación GUI desde un servicio y MiniSystem, una miniaplicación para ejecutar programas con privilegios SYSTEM, que te aclararan conceptos y te darán pautas para realizar lo que pretendes. Saludos. |
Cita:
Saludos! |
| La franja horaria es GMT +2. Ahora son las 10:29:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi