2012-06-20 9 views
6

He escrito una aplicación WPF en C# que me gustaría mostrar cada vez que se abre el menú de inicio y ocultarlo de nuevo cuando se cierra el menú. Preferiría hacer esto sin consultar el estado del menú de inicio. Hasta ahora he intentado escuchar los mensajes de SHELLHOOK, pero no veo nada útil allí.¿Cómo puedo detectar cuándo se abre el menú de inicio de Windows 7?

+1

¡No estoy seguro de que la aplicación reciba mucha apreciación del usuario! :) –

+2

Soy el usuario, lo agradeceré! Me he visto obligado a usar Windows y prefiero estar en Gnome-shell. – Hemlock

+0

Si eres el único usuario, ¿por qué importaría si el código sondea o no? – Dialecticus

Respuesta

2

que no se puede escribir código completo, pero aquí es la lógica detrás de él,

  1. En primer lugar encontramos el mango de la barra de tareas utilizando

    [DllImport("user32.dll", SetLastError = true)] 
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 
    

    también pasan Shell_TrayWnd como lpClassName

  2. Activar el menú Start haciendo clic en el botón.

  3. obtener el identificador de ventana del menú Inicio

  4. Uso GetWindowLong función para comprobar que está abierto o no.

+1

Sí, esto funcionará _si hago una encuesta_. Prefiero no sondear, así que actualizaré mi pregunta. – Hemlock

+0

¿cómo usaría GetWindowLong para verificar si el menú de inicio está abierto o no? –

Cuestiones relacionadas