При Щелчке По Значку В Трее Определить Активно Ли Окно

Тема в разделе ".NET", создана пользователем Tolias, 2 фев 2012.

Статус темы:
Закрыта.
  1. Tolias

    Tolias Гость

    Делаю приложение, которое сворачивается в трей. Хочу сделать, чтобы при одиночном клике по значку в трее окно появлялось на переднем плане (если оно было свернуто или было не на переднем плане), а в противном случае пряталось в трей. На счет первого проблем не возникло, так как легко проверить равно ли Visible == true. А вот со вторым не знаю, как узнать после события щелчка мыши по значку, было ли до этого окно активно или оно было спрятано за окнами. Пробовал на WinAPI писать вот такое для взятия имени активного окна:
    <!--shcode--><pre><code class='c#'> [DllImport("user32.dll")]
    static extern int GetForegroundWindow();

    [DllImport("user32.dll")]
    static extern int GetWindowText(int hWnd, StringBuilder text, int count);

    private void ShowHideMainWindow()
    {
    const int nChars = 256;
    int handle = 0;
    StringBuilder Buff = new StringBuilder(nChars);

    handle = GetForegroundWindow();

    if (GetWindowText(handle, Buff, nChars) > 0)
    {
    this.label1.Text = Buff.ToString();
    }[/CODE]
    но она у меня не работает по той простой причине, что когда происходит щелчек по значку в трее, то уже никакое окно не активно (даже если перед этим оно было активно), из-за чего таким путем узнать не получается.

    Прошу помощи, как это сделать. Ведь другие программы это умеют делать (например квип..)

    И еще один вопрос: я пересмотрел все события объекта NotifyIcon и пробовал подписываться на такие события: Click, DoubleClick, MouseClick, MouseDoubleClick. Но все эти события реагируют как на левую, так и на правую кнопку мыши. Мне же нужно, чтобы окно пряталось/появлялось только левой кнопкой мыши, а правая остается для контекстного меню. Как реагировать только на левую кнопку?
     
  2. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    19
    Окно надо не искать а держать ссылку на его в проекте с иконкой.
     
  3. Tolias

    Tolias Гость

    Какую именно ссылку? Если честно, я вас не понял...
     
  4. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    19
    На ваше окно естественно.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей