Menú en frente

Iniciado por HJ ~, 10 Abril 2009, 16:18 PM

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

HJ ~

Hola, intentare iré al grano.

Ayer estaba probando un cheat de un juego y en la pantalla salía el juego, en pantalla completa, pero abajo de todo salía un menu (Del cheat) que te permitía ver las opciones y tal... bueno, yo lo unico que quiero saber es como podría hacer que cuando ejecutase un programa a PANTALLA COMPLETA pudiera hacer que se autoejecutara una especie de menu que se pusiera por delante del juego a pantalla completa?

Por ejemplio, imaginemos qeu quiero poner un CommandButton arriba de todo el juego, que se yo... cómo se haría? No se si me explico muy bien...

Gracias!!

xkiz ™

con SetWindowPos podes poner una ventana ensima de otras ejemplo: Always OnTop

HJ ~

#2
Cita de: xkiz en 11 Abril 2009, 03:02 AM
con SetWindowPos podes poner una ventana ensima de otras ejemplo: Always OnTop
Gracias, es que no sabía el nombre de la API, pero en un juego, como es en pantalla completa y se ejecuta con Direct3D no lo permite, se sigue quedando atrás, en todo lo demás bien pero el caso es que se quede delante de todo, incluyendo el juego, no habría alguna manera de añadir una DLL que se ejecutara junto al Direct3D para que así no se hiciera un lío en el buffer?

Gracias

el_c0c0

Cita de: HJ ~ en 11 Abril 2009, 13:03 PM
Cita de: xkiz en 11 Abril 2009, 03:02 AM
con SetWindowPos podes poner una ventana ensima de otras ejemplo: Always OnTop
Gracias, es que no sabía el nombre de la API, pero en un juego, como es en pantalla completa y se ejecuta con Direct3D no lo permite, se sigue quedando atrás, en todo lo demás bien pero el caso es que se quede delante de todo, incluyendo el juego, no habría alguna manera de añadir una DLL que se ejecutara junto al Direct3D para que así no se hiciera un lío en el buffer?

Gracias

Yo vi eso en el GTA Vice City CamHack, que estaba hecho en VB6 y mostraba informacion en pantalla y a su vez imprimia un velocimetro todo sobre el D3D. El tema es que tenes que saber donde residen las funciones de escritura en pantalla del programa o juego y luego llamarlas con CallWindowProc (no es tan asi, pero bueno). La otra es obtener el handle del D3D y usar las DLLs de la version que esta ejecutando el juego, sea 8,9,10.

Y bueno sino queda la siguiente: con BitBlt imprimir cada mas o menos 50ms una imagen (como hace el cyber control de lucio perri, al avisarte que te queda poco tiempo) y obtener las teclas presionadas con GetKeyState o un Subclass a la ventana del juego o un Hook global y ver si la ventana activa es la del juego.

saludos
'-     coco
"Te voy a romper el orto"- Las hemorroides

HJ ~

Cita de: el_c0c0 en 11 Abril 2009, 19:23 PM
Cita de: HJ ~ en 11 Abril 2009, 13:03 PM
Cita de: xkiz en 11 Abril 2009, 03:02 AM
con SetWindowPos podes poner una ventana ensima de otras ejemplo: Always OnTop
Gracias, es que no sabía el nombre de la API, pero en un juego, como es en pantalla completa y se ejecuta con Direct3D no lo permite, se sigue quedando atrás, en todo lo demás bien pero el caso es que se quede delante de todo, incluyendo el juego, no habría alguna manera de añadir una DLL que se ejecutara junto al Direct3D para que así no se hiciera un lío en el buffer?

Gracias

Yo vi eso en el GTA Vice City CamHack, que estaba hecho en VB6 y mostraba informacion en pantalla y a su vez imprimia un velocimetro todo sobre el D3D. El tema es que tenes que saber donde residen las funciones de escritura en pantalla del programa o juego y luego llamarlas con CallWindowProc (no es tan asi, pero bueno). La otra es obtener el handle del D3D y usar las DLLs de la version que esta ejecutando el juego, sea 8,9,10.

Y bueno sino queda la siguiente: con BitBlt imprimir cada mas o menos 50ms una imagen (como hace el cyber control de lucio perri, al avisarte que te queda poco tiempo) y obtener las teclas presionadas con GetKeyState o un Subclass a la ventana del juego o un Hook global y ver si la ventana activa es la del juego.

saludos

Entonces debería programar una DLL que se arrancara con el juego para que no se hiciera un lío en el buffer, verdad?

el_c0c0

Cita de: HJ ~ en 13 Abril 2009, 00:50 AM
Cita de: el_c0c0 en 11 Abril 2009, 19:23 PM
Cita de: HJ ~ en 11 Abril 2009, 13:03 PM
Cita de: xkiz en 11 Abril 2009, 03:02 AM
con SetWindowPos podes poner una ventana ensima de otras ejemplo: Always OnTop
Gracias, es que no sabía el nombre de la API, pero en un juego, como es en pantalla completa y se ejecuta con Direct3D no lo permite, se sigue quedando atrás, en todo lo demás bien pero el caso es que se quede delante de todo, incluyendo el juego, no habría alguna manera de añadir una DLL que se ejecutara junto al Direct3D para que así no se hiciera un lío en el buffer?

Gracias

Yo vi eso en el GTA Vice City CamHack, que estaba hecho en VB6 y mostraba informacion en pantalla y a su vez imprimia un velocimetro todo sobre el D3D. El tema es que tenes que saber donde residen las funciones de escritura en pantalla del programa o juego y luego llamarlas con CallWindowProc (no es tan asi, pero bueno). La otra es obtener el handle del D3D y usar las DLLs de la version que esta ejecutando el juego, sea 8,9,10.

Y bueno sino queda la siguiente: con BitBlt imprimir cada mas o menos 50ms una imagen (como hace el cyber control de lucio perri, al avisarte que te queda poco tiempo) y obtener las teclas presionadas con GetKeyState o un Subclass a la ventana del juego o un Hook global y ver si la ventana activa es la del juego.

saludos

Entonces debería programar una DLL que se arrancara con el juego para que no se hiciera un lío en el buffer, verdad?
no necesariamente. es mas te diria directamente que no. el vice city camhack que mencione arriba, no es una dll, es un .exe que lee la memoria del juego y maneja datos...

saludos
'-     coco
"Te voy a romper el orto"- Las hemorroides

HJ ~

Pues así no debería editar memoria, sino, crear una linea de memoria que se escribiera junto al juego así lo leeria como parte del juego, no?

Saludos

el_c0c0

Cita de: HJ ~ en 13 Abril 2009, 16:16 PM
Pues así no debería editar memoria, sino, crear una linea de memoria que se escribiera junto al juego así lo leeria como parte del juego, no?

Saludos
no, asi no funciona. vas a necesitar leer o escribir memoria siempre a menos que las funciones tengan una posicion estatica, pero en fin, da igual. es mas facil hacerlo desde afuera que desde una dll inyectada.

saludos
'-     coco
"Te voy a romper el orto"- Las hemorroides