Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Detour (https://www.clubdelphi.com/foros/showthread.php?t=94496)

FrianxD 06-03-2020 06:20:18

Detour
 
Alguno podria ayudarme. Necesito aprender a hacer un detour a una funcion. Y no logro entender como hacerlo. En c++

Neftali [Germán.Estévez] 06-03-2020 09:49:26

Demasiado genérica.
Tal vez deberías especificar un poco más.

Ñuño Martínez 06-03-2020 11:22:49

¿Desviar una función? :confused:

Neftali [Germán.Estévez] 06-03-2020 11:51:05

Cita:

Empezado por Ñuño Martínez (Mensaje 536138)
¿Desviar una función? :confused:


Hay quien a hacer un Hook le llama hacer un "detour", pero por eso digo, que es muy genérico...

escafandra 06-03-2020 12:48:12

Imagino que quiere hacer un Hook a alguna API.

Si es así, aquí tiene un tutorial.


Saludos.

FrianxD 06-03-2020 17:51:37

Neftali y escafandra. Uds 2 siempre responden y saben una banda. Hace muchos años no entraba al foro. No pude estudiar mas c++ por cuestiones de tiempo. Pero agradezco que se tomen las molestias de contestar.

Si, fue un poco generica la pregunta.

Desconocia que hacer un hook a una api era llamado detour por eso lo pregunte de esa manera. Porq buscando en inet hay poca info de "DETOUR" y le sumo que esta en ingles. Entonces se me complica mas.

Lo real que quiero hacer. Tengo una calculadora hecha por mi que solo suma. Tiene un boton para sumar. Lo que quiero es hacer otra aplicacion hacer un "Detour" a esa funcion y en vez de sumar. Que multiplique.

El fin de hacer eso. Es solamente aprender a hacerle ese hook como dicen uds. E ir jugando con el para aprender bien como funciona. Ahora revisaré la info que me dejaron. Y gracias por estar siempre en el foro ayudando.

escafandra 06-03-2020 18:30:30

Cita:

Empezado por FrianxD (Mensaje 536152)
...Lo real que quiero hacer. Tengo una calculadora hecha por mi que solo suma. Tiene un boton para sumar. Lo que quiero es hacer otra aplicacion hacer un "Detour" a esa funcion y en vez de sumar. Que multiplique...

Un Hook a la API significa a la API de Windows. Cambien podría hacerse a una función exportada de una dll o ejecutable. En el caso concreto de tu pregunta no lo puedes hacer puesto que no tienes forma de conocer un puntero a la función que quieres modificar. En este caso y tratándose de un código que estará asociado a un botón, es decir, ea un evento, es decir, a un mensaje windows, el camino no debe ir por un hook sino por un subclasing. Esto requiere localizar bien el mensaje asociado al botón suma, me refiero al mensaje windows.
Un subclasing es, básicamente, cambiar la función de tratamiento de mensajes de una ventana para controlarlo con nuestro nuevo código. sería algo parecido a un hook al WindowProc asociado a la ventana.

Saludos.

FrianxD 06-03-2020 20:54:12

Estaba mirando un poco la info que me dejaste, y es justo lo que quería hacer, ese trampolín,




voy a ver si intento en vez de con mi app, con algún juego 2d o algo parecido, para probar.

De todas formas mirando el código que dejaste en C, poco entiendo, mis conocimientos son básicos y por eso voy preguntando y probando para aprender.

No se como tenes tanta info en la cabeza y esa habilidad de pasar codigo de lenguaje a lenguaje, pero es admirable, de nuevo gracias. Y bueno estudiaré el codigo hasta que salga algo.

FrianxD 06-03-2020 23:08:47

No se cual es el problema que tengo cuando intento compilar.

Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error C2665 'InstallHook': ninguna de las 2 sobrecargas pudo convertir todos los tipos de argumento

escafandra 07-03-2020 00:46:04

Cita:

Empezado por FrianxD (Mensaje 536156)
No se cual es el problema que tengo cuando intento compilar.

Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error C2665 'InstallHook': ninguna de las 2 sobrecargas pudo convertir todos los tipos de argumento

Descarga el proyecto hookdll Lo escribí en Builder5

Cuando tenga un rato lo compilo en Berlin.

Saludos.

escafandra 07-03-2020 15:17:23

He compilado el proyecto en Berlín y he hecho pequeños cambios que van encaminados al escabroso uso del Unicode. El enlace de descarga lo tienes aquí.



Saludos.


La franja horaria es GMT +2. Ahora son las 22:04:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi