2012-06-20 3 views
6

Я написал приложение WPF на C#, которое я хотел бы показывать каждый раз, когда открывается начальное меню и снова скрывается, когда меню закрыто. Я бы предпочел сделать это без опроса состояния меню «Пуск». До сих пор я пробовал слушать сообщения SHELLHOOK, но я не вижу там ничего полезного.Как я могу обнаружить, когда открывается начальное меню Windows 7

+1

Я не уверен, что приложение получит высокую оценку пользователей! :) –

+2

Я пользователь, я буду признателен! Я был вынужден использовать Windows, и я предпочел бы быть на Gnome-shell. – Hemlock

+0

Если вы единственный пользователь, тогда почему это имеет значение, если код действительно опроса или нет? – Dialecticus

ответ

2

Я не могу написать вам полный код, но здесь есть логика позади него,

  1. Сначала найдите ручку для панели задач с помощью

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

    также проходят Shell_TrayWnd в lpClassName

  2. Активировать Начало Menu by simulating click button.

  3. Получить дескриптор окна Start Menu

  4. Используйте GetWindowLong функцию, чтобы проверить это открыто или нет.

+1

Да, это сработает, если я опрошу. Я бы предпочел не опросить, поэтому я обновлю свой вопрос. – Hemlock

+0

как вы используете GetWindowLong, чтобы проверить, открыто ли меню «Пуск»? –