Где в программе проставить удаление иконки из трея, если...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Где в программе проставить удаление иконки из трея, если...

Сообщение Ruslan Demidow » 18.11.2004 (Чт) 11:30

Где в программе проставить удаление иконки из трея, если у меня программа свёрнута в трей (по методу описанному в http://bbs.vbstreets.ru/viewtopic.php?t=3759 )?
Поясню: в своей программе я сделал ограничение на количество запущенных копий через процедуру

Код: Выделить всё
Sub CheckCopyApp()
    Dim sTitle As String
    Dim hWnd As Long
    Dim lRetVal As Long
   
    If App.PrevInstance Then
        sTitle = Me.Caption
        App.Title = "Новая копия"
        Me.Caption = "Новая копия"
       
        hWnd = FindWindow(vbNullString, sTitle)
        If hWnd <> 0 Then
            lRetVal = ShowWindow(hWnd, SW_RESTORE)
            lRetVal = SetForegroundWindow(hWnd)
            lRetVal = SetActiveWindow(hWnd)
        End If
        End
    End If
End Sub


Таким образом при запуске второй копии активизируется первая копия.
Но если первая копия свёрнута в трей, то после активизации окна первой копии, иконку в трее не могу удалить.
Хотел сделать удаление в
Form_Activate - не удаляет.
Вообще туда даже не заглядывает.

Как отследить, что форма развёрнута из трея другой программой - пославшей ей ShowWindow form_hwnd, SW_RESTORE ?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.11.2004 (Чт) 11:37

Сабклассить...

Или проще - вместе с ShowWindow(hWnd, SW_RESTORE) посылать BM_CLICK невидимой кнопке.
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 18.11.2004 (Чт) 23:05

tyomitch писал(а):Сабклассить...

Или проще - вместе с ShowWindow(hWnd, SW_RESTORE) посылать BM_CLICK невидимой кнопке.
Ок. Спасибо, Артём. Так и сделаю. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 19.11.2004 (Пт) 10:40

Сделал по другому. :)
Не там смотрел - надо было смотреть в Form_Resize.
В обработке события сделал проверку - если Me.Visible=True тогда удаляю иконку из трея.
Теперь работает так как надо. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList