Сделай сам: IE и Delphi – вместе веселее! | Программирование на Delphi и не только

Реклама на сайте

Аренда конференц залов в петербурге
Продажа беспроводная мини видеокамера в Москве

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Сделай сам: IE и Delphi – вместе веселее!

28.01.2008 от Иван Ширко

Страница: 1 2 3 4 5 6

Сегодня мы займёмся самым популярным web-браузером в мире – Internet Explorer'ом. Кто-то обожает эту программу, кто-то терпеть её не может, но, как ни крути, пока что ни один конкурент IE не может приблизиться к нему по возможностям (не считая, конечно, браузеров, построенных на движке IE). Итак, что мы будем делать с IE? Да ничего страшного… Мы просто научимся управлять им так же, как и любым другим окном. Для закрепления полученных знаний сделаем программу для управления IE при помощи горячих клавиш. Для пущего эффекта добавим иконку программы на Системную панель (SysTray). Итак, поехали…
Первым делом разберёмся с двумя приёмами программирования, которые мы будем использовать и в последующих статьях данного цикла:
1) Как работать с "горячими" клавишами?
2) Как добавить свой значок на Системную Панель (SysTray, можно узнать по характерным для неё часикам)?
На первый вопрос я уже дал частичный ответ в статье Сделай сам: "Вскрывалка паролей", но нам нужно копнуть немного глубже, а второй вопрос мы ещё вообще не затрагивали.

Работа с "горячими" клавишами
Для работы с "горячими" клавишами вполне достаточно использования лишь двух функций:
1) Регистрирует "горячие" клавиши:
BOOL RegisterHotKey(
    HWND hWnd, // этому окну придёт уведомление о нажатии комбинации клавиш
    int id, // идентификатор "горячих" клавиш
    UINT fsModifiers, // должны ли быть нажаты клавиши Ctrl, Shift, Alt или Win
    UINT vk // код клавиши, на которую мы будем реагировать
);
2) Удаляет "горячие" клавиши
BOOL UnregisterHotKey(
    HWND hWnd, // окно, ассоциированное с "горячими" клавишами
    int id // идентификатор "горячих" клавиш
);
  

Всё бы ничего, да вот при работе с "горячими" клавишами из DLL (динамически подключаемой библиотеки) могут возникнуть проблемы с идентификаторами. Чтобы этого избежать следует использовать функцию GlobalAddAtom, которая возвратит нам уникальный идентификатор (атом) требуемого формата. После завершения работы с "горячими" клавишами атом нужно удалить при помощи функции GlobalDeleteAtom. Работу с атомами мы рассмотрим в одной из следующих статей, где будем использовать DLL.
Помещение своей иконки в SysTray
Бывают такие программы, которые постоянно должны быть активны в системе. Они довольно часто помещают свой значок на Системную панель, чтобы не надоедать пользователю присутствием своего окна и в то же время оставить возможность "достучаться" до программы. Для управления иконкой на Системной панели используется функция
Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData): BOOL;

Страница: 1 2 3 4 5 6

Рубрики: Delphi, Сделай сам |

Один комментарий

  1. Око пишет:

    Что-то так не выходит ничего

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.