![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Sigo indagando sobre este asunto, y al margen de haber visto componentes para Delphi (dwinlock) y que por cierto ya cita roman en alguno de sus hilos, así como las librerías de Mathias Rauen que alivian mucho código, básicamente todo se basa en el famoso código GINA, pero hay un concepto que no acabo de entender...
¿Es posible que la tan afamada clase "SAS Window class" sea encontrada por FindWindow cuando el código ha sido inyectado? Quiero decir que bajo XP y en circunstancias normales, y sin inyectar nada, esa clase no la encuentro por ningún lado... con lo cual hacerle un SetWindowLong lo veo difícil a simple vista. ¿seaone, sabes algo de este asunto? Por cierto, el código traducido a Delphi, se puede encontrar en la web de Liu Yang LYSoft. Solamente hay que inyectar la Dll propuesta, pero sigo con la duda de esa clase...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO Última edición por ArdiIIa fecha: 26-02-2007 a las 14:00:39. |
|
#2
|
||||
|
||||
|
No la encuentras porque se encuentra en un escritorio diferente. FindWindows solo encuentra las ventanas que están en el mismo escritorio que la aplicación que la llama. Así que antes de nada tenemos que meternos en el mismo escritorio que la ventana en cuestión.
Eso es lo que intento en el primer código que puse, con las funciones SetProcessWindowStation y SetThreadDesktop. Una vez estamos en el mismo escritorio ya podemos interactuar con la ventana famosa. De todas formas, si no estoy equivocado, cuando inyectas código dentro de otro proceso, este pasa a formar parte del el, es decir, pasa a tener el mismo escritorio y los mismo permisos. Así que una vez inyectado el código no tendríamos ningún problema en localizar la ventana, sin necesidad de andar saltando de un escritorio a otro. |
|
#3
|
||||
|
||||
|
Cita:
Vale, parece que no es una cuestión nada indocumentada...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO Última edición por ArdiIIa fecha: 26-02-2007 a las 14:22:20. |
|
#4
|
||||
|
||||
|
Cita:
Con diferentes parámetros e incluso ejecutándolo como servicio, siempre Desktop me devuelve CERO, con lo cual, la jodi** clase SAS.. no la voy a ver nunca... Al menos ya me he aclarado un poco con el tema de los desktop y para verlo con mis propios ojos he encontrado este código que es muy ilustrativo y sencillo: Al final, a mí también me aburre el tema, así que dejo de curiosear, me parece demasiado esfuerzo para tan poca cosa... De hecho hay componentes y Dll GINA para meter mano al asunto, si se me diera el caso de necesitarlo, retomaría el asunto... pero lo dudo...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
#5
|
||||
|
||||
|
Cita:
// Saludos |
|
#6
|
||||
|
||||
|
Cita:
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
#7
|
||||
|
||||
|
Bueno, pues al final parece que sale bien inyectando código. Aquí os dejo el código, lo acabo de hacer así que esta un poco "sucio", pero creo que debe de funcionar bien.
Por una parte tenemos una dll, que es la que vamos a inyectar en el winlogon. Esta librería se inyecta sola , exporta dos funciones Inject y Eject, la primera inyecta la dll en el winlogon y la segunda la vuelve a sacar. La dll por su parte, una vez que detecta que ha sido inyectada, sustituye el bucle de mensajes de la ventana "SAS window" e intercepta el mensaje WM_HOTKEY.Código de la librería:
Un ejemplo de como usar la librería seria la siguiente aplicación de consola, donde se supone que la librería se encuentra en la misma carpeta que la aplicación.
Bueno, una cosa mas que tacho en mi lista ![]() EDITO: Modifique un poco el código para ponerlo bonito. Última edición por seoane fecha: 27-02-2007 a las 03:56:39. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ctrl+alt+supr NO FUNCIONA! | CITHALI ACERMA | Varios | 5 | 04-07-2006 13:45:43 |
| Ctrl+alt+supr | karocs | Varios | 3 | 28-12-2004 20:46:37 |
| Como inhabilitar Ctrl+Supr en Rejilla de datos | pinoxito | OOP | 2 | 30-07-2004 03:24:51 |
| ocultar aplicación (Ctrl+Alt+Supr)!!! | acertij022 | API de Windows | 8 | 10-04-2004 20:02:36 |
| Alt-Ctrl-Supr: el inicio | kinobi | Humor | 2 | 02-10-2003 22:03:49 |
|