Использование элемента SysTray
SysTray можно включить в ваше приложение, как любой другой элемент. Давайте попробуем это сделать на примере простейшей программы, с помощью которой вы сможете запускать некоторые полезные утилиты Windows. Выполните следующие действия:
1. Создайте новый проект командой File > New Project. Выберите в диалоговом окне New Project значок Standard EXE.
2. Задайте свойству Name формы Form1 значение frmMain.
3. Щелкните правой кнопкой мыши на панели элементов и выберите из контекстного меню команду Components....
4. Установите флажок рядом со строкой C:\Windows\System\SysTray.ocx, чтобы добавить элемент SysTray на панель элементов. Нажмите кнопку ОК.
5. Поместите элемент SysTray на форму frmMain и задайте свойству Name значение clsSysTray.
6. В окне свойств задайте свойству InTray значение True, а свойству TrayTip — значение Запуск приложений.
7. Щелкните на форме frmMain, чтобы сделать ее активной. Запустите редактор меню командой Tools > Menu Editor....
8. Создайте меню. Задайте свойству Caption значение &Приложения, а свойству Name — значение mnuApp. Нажмите кнопку Next.
9. Нажмите кнопку со стрелкой вправо, чтобы приступить к созданию команд меню.
0. Создайте следующие команды.
1. В результате должно получиться меню, показанное на рис. 19.6. Закройте редактор меню кнопкой ОК.
2. Дважды щелкните на форме frmMain, чтобы открыть окно программы.
3. Добавьте следующий фрагмент в процедуру события Load:
Private Sub Form_Load()
Me.Hide End Sub
4. Откройте процедуру события MouseDown элемента clsSysTray и добавьте следующий фрагмент:
Private Sub clsSysTray_MouseDown(Button As Integer, Id As Long)
If Button = 2 Then PopupMenu mnuApp
End If End Sub
5. Добавьте следующий фрагмент в процедуру события Click меню mnuAppCalc:
Private Sub mnuAppCalc_Click() Dim rс As Double
Рис. 19.6. Структура меню
гс = Shell("calc.exe", vbNormalFocus) End Sub
16. Добавьте следующий фрагмент в процедуру события Click меню mnuAppCalc:
Private Sub mnuAppExplorer_Click()
Dim гс As Double
rс = Shell("explorer.exe", vbNormalFocus) End Sub
17. Добавьте следующий фрагмент в процедуру события Click меню mnuApp Notepad:
Private Sub mnuAppNotepad_Click()
Dim rс As Double
rс = Shell("notepad.exe", vbNormalFocus) End Sub
18. Добавьте следующий фрагмент в процедуру события Click меню mnuAppClose:
Private Sub mnuAppClose_Click()
Unload Me
Set frmMain = Nothing End Sub
19. Сохраните и запустите проект.
На системной панели появится маленький значок в виде тостера. Если на пару секунд задержать над ним указатель мыши, появляется подсказка «Запуск прило-
Caption | Name |
& Калькулятор П&роводник &Блокнот &3акрыть | mnuAppCalc mnuAppExplorer mnuAppNotepad mnuAppSep1 mnuAppClose |
жений». Если щелкнуть на значке правой кнопкой мыши, открывается контекстное меню, из которого можно выбрать приложение (рис. 19.7):
Рис. 19.7. Запуск приложений из системной панели
Вы можете изменить программу и включить в нее свои любимые приложения, запускаемые чаще других, и даже подключить к ней базу данных или ASCII-файл для настройки команд меню. Вашего опыта работы с Visual Basic б вполне хватит для того, чтобы создать такое приложение и наделить его любыми необходимыми возможностями.
ПОДСКАЗКАПриложения, работающие на системной панели, обычно содержат контекстное меню, с помощью которого пользователь может выполнять нужные действия с программой. Вы должны как минимум обеспечить возможность закрыть приложение. Если вы хотите, чтобы оно отображало форму или диалоговое окно, поместите вызов метода Show в процедуру события MouseDblClick элемента clsSysTray.
Взгляд в будущее
На самом деле наше знакомство с Windows API не назовешь даже поверхностным. Приведу лишь небольшой список интересных вещей, которые можно сделать с помощью Win32 API:
О Создание «плавающих» форм, которые постоянно отображаются поверх всех остальных форм.
О Использование сетевых возможностей с помощью функций WNet. О Создание приложений для видеозаписи с помощью функций AVICap.
Хорошие программные средства в сочетании с небольшой долей творческого воображения способны творить чудеса. К сожалению, полное описание Win32 API заняло бы несколько толстых книг, так что я даже не стану пытаться рассказать вам все необходимое. По мере создания новых приложений и накопления опыта программирования на Visual Basic вы узнаете об ограничениях этого языка. Когда это произойдет, начинайте изучать API. Visual Basic в сочетании с Win32 API позволяет написать практически любую программу.
Наконец, достаньте хорошую книгу по Windows API. Хотя API Viewer предоставляет объявления функций API, он совершенно не объясняет смысл параметров,
необходимых для работы функций. В хорошей книге по API должны быть описаны все функции вместе с параметрами. Не жалейте денег — если вы собираетесь серьезно заняться программированием, такая книга вам все равно понадобится.
ПОДСКАЗКАОбязательно купите книгу с описанием Windows API. Она пригодится гораздо раньше, чем вы думаете.
Теперь, когда вы знаете основы работы с Visual Basic, попробуйте «поиграть» с примерами приложений, находящимися на компакт-диске Visual Basic. Кроме того, займитесь самостоятельным программированием, и незаметно для себя вы станете настоящим профессионалом в области Visual Basic.
Что нового мы узнали?
В этом уроке мы научились:
Использовать API Viewer для получения объявлений функций API.
0 Объявлять функции API в DLL.
0 Использовать функции API в приложениях.
0 Помещать значок приложения на системную панель.
[1] Windows Explorer в исходной версии. — Примеч. перев.
[2] Однако при этом размеры окна можно изменять кнопками развертывания и восстановления. - Примеч. перев.
[3] В этом и всех остальных примерах, входящих в комплект Visual Basic, надписи и тексты были по возможности переведены на русский язык для удобства чтения. — Примеч. перев.
[4] Формат даты (как и денежных единиц) зависит от системных установок Windows (значок Язык и стандарты (Regional Settings) в Панели управления). — Примеч. перев.