elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Evitar activación de ventana externa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar activación de ventana externa  (Leído 940 veces)
TomaSs

Desconectado Desconectado

Mensajes: 101



Ver Perfil
Evitar activación de ventana externa
« en: 20 Agosto 2013, 00:32 am »

Hola chicos.

Pues vengo a haceros una preguntilla para ver si me podéis echar una manita ;)
El tema es que estoy probando con la calculadora de windows a ver si conseguía lograr lo que digo en el título de este hilo. La cuestión sería clicar en cualquier botón de la calculadora y que esta reciba los clics y responda a los botones presionados, pero que no se active su ventana (que la ventana no coja el foco).
Estoy tratando de hacer un hook a WH_CALLWNDPROC para capturar cuando se llama a WM_ACTIVATEAPP y seguidamente ya intentaría invalidarlo, pero el tema es que no me hace el hook.

Este sería parte del código que estoy utilizando, pero no se porqué no me engancha el hook, a ver si sabríais decirme que estaría mal:

Código:
private void Iniciar_Hook()
        {
            try
            {
                HookProc HookDelegado = new HookProc(HookProcHandler);

                if (hook.Equals(IntPtr.Zero))
                {
                    Console.Beep();
                    IntPtr hwndWindow = FindWindowByCaption(IntPtr.Zero, "Calculadora");
                    //MessageBox.Show(hwndWindow.ToString());
                    hook = SetWindowsHookEx(HookType.WH_CALLWNDPROC, HookDelegado, hwndWindow, 0);
                    MessageBox.Show(hook.ToString()); //Muestra 0
                    bt_boton1.Text = "STOP";
                }
                else
                {
                    UnhookWindowsHookEx(hook);
                    hook = IntPtr.Zero;
                    bt_boton1.Text = "GO";
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Error en el Hook: \n" + e.Message);
            }
        }

private IntPtr HookProcHandler(int code, WM wParam, KBDLLHOOKSTRUCT lParam)
        {
            try
            {
                MessageBox.Show("hola1");
                if (code >= 0 && (lParam.Equals(WM.ACTIVATEAPP) || lParam.Equals(WM.ACTIVATE)))
                {
                    //MessageBox.Show("hola2");
                    //Console.Beep();
                }
                return CallNextHookEx(IntPtr.Zero, code, wParam, lParam);
            }
            catch (Exception e)
            {
                MessageBox.Show("Error en el Hook: \n" + e.Message);
            }
            return (IntPtr)1;
        }

También decir que me ejecuta el programa y tal, por lo que la declaración de funciones etc no es problema, el tema es que no me hace el hook. No se si será que los parámetros de HookProcHandler deberían ser otros al tratarse de hacer un hook a WH_CALLWNDPROC o no se, porque cuando hago el hook a WH_KEYBOARD_LL si que me lo hace perfectamente...

Muchas gracias como siempre!!! ;)


« Última modificación: 20 Agosto 2013, 12:22 pm por TomaSs » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hacer un programa o ventana externa invisible
Programación Visual Basic
Xerok1! 5 1,660 Último mensaje 25 Junio 2007, 02:46 am
por ranslsad
[C] Clic (con SendMessage) en una ventana externa
.NET (C#, VB.NET, ASP)
GonzaFz 3 2,383 Último mensaje 23 Mayo 2012, 01:37 am
por GonzaFz
Manejo de Ventana Externa
Programación Visual Basic
ranslsad 2 1,137 Último mensaje 14 Abril 2013, 13:46 pm
por Psyke1
Enviar click a ventana externa (de forma especial)
.NET (C#, VB.NET, ASP)
TomaSs 0 859 Último mensaje 25 Enero 2014, 14:04 pm
por TomaSs
Leer etiqueta de un ventana externa
Programación Visual Basic
lepus36 2 1,164 Último mensaje 28 Febrero 2016, 05:06 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines