Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Visual Basic 5.0/6.0 - Общие вопросы

Все примеры / Общие вопросы

Как добавить программу в систем-трей?

Автор: Алексей Немиро | добавлено: 06.03.2010, 11:23 | просмотров: 2784 (1+) | комментариев: 0 | рейтинг: *x10
Пример показывает, как можно добавить программу в систем-трей (иконку рядом с часами Windows).

Код

Option Explicit
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Type NOTIFYICONDATA
 cbSize As Long
 hwnd As Long
 uID As Long
 uFlags As Long
 uCallbackMessage As Long
 hIcon As Long
 szTip As String * 64
End Type
Dim theForm As NOTIFYICONDATA

Private Sub Form_Resize()
 If Me.WindowState = vbMinimized Then
  theForm.cbSize = Len(theForm)
  theForm.hwnd = picNotifier.hwnd
  theForm.hIcon = picNotifier.Picture
  theForm.uID = 1&
  theForm.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
  theForm.uCallbackMessage = WM_MOUSEMOVE
  theForm.szTip = "Kbyte.Ru - лучший сайт для программистов" & Chr$(0)
  Shell_NotifyIcon NIM_ADD, theForm
  Me.Hide
  App.TaskVisible = False
 Else
  theForm.cbSize = Len(theForm)
  theForm.hwnd = picNotifier.hwnd
  theForm.uID = 1&
  Shell_NotifyIcon NIM_DELETE, theForm
 End If
End Sub

Private Sub mnuAbout_Click()
 MsgBox "http://kbyte.ru - лучший сайт для программистов!", vbInformation
End Sub

Private Sub mnuExit_Click()
 Unload Me
End Sub

Private Sub mnuShowWindow_Click()
 Me.WindowState = vbNormal
 Me.Show
End Sub

Private Sub picNotifier_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Обработка событий
On Error Resume Next
Static Rec As Boolean, Msg As Long
 Msg = X / Screen.TwipsPerPixelX
 If Rec = False Then
  Rec = True
  Select Case Msg
   'Если DoubleClick
   Case WM_LBUTTONDBLCLK:
    Me.WindowState = vbNormal
    Me.Show
   'Если левая Кнопка нажата
   Case WM_LBUTTONDOWN:
   'Если левая Кнопка Отжата
   Case WM_LBUTTONUP:
   'Правая кнопка Click
   Case WM_RBUTTONDBLCLK:
   'Если Правая Кнопка нажата
   Case WM_RBUTTONDOWN:
   'Если Правая Кнопка Отжата
   Case WM_RBUTTONUP:
    PopupMenu mnuPopMenu
  End Select
  Rec = False
 End If
End Sub
Файлы notify.zip (3,37 Кб)
Обратите внимание
Язык Visual Basic 6.0 является устаревшим. Многие примеры, размещенные на нашем сайте, были созданы еще во времена Windows 98 и могут не работать в современных операционных системах.
Если у вас возникнут какие-либо проблемы или вопросы, вы можете обратиться за помощью на наш форум.
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики