[[ header START ]]

Welcome to OS2.GURU site! (eComStation.RU)

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:
telegram

Форум обсуждение

telegram

Send message

telegram

[ +7-981-8529467 (Санкт-Петербург)

telegram

t.me/os2_guru

eComStation.RU


ru · en · de · es · it · pt · cz · pl · fr
OS/2 - это совершенно другая операционная система для PC (ArcaOS, eComStation, IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
 
[Что такое OS/2?  Новости  Установка  Обновление  
 
 
Применение  Будущее  Сообщество  Проекты  

eCo Software
не получает вознаграждение
из США

[Как заработать в OS/2?

Как купить OS/2 дискету?

Идеи для фанатов OS/2

*

 
Обновление

 
Программы

 
(Санкт-Петербург)

 
Преимущества (1)

 
Разработчику (1)

 
(Пайпы программ)

 
Компании: (1)

 
История (1):

 
(Бонусы)

 
Советы:

 
(Барьеры и решения)

 
Технологии: (1)

 
(Применение в науке, лаборатории, ..)

 

 
Готовые решения:

 
Новая eComStation:

 
Будущее: (1)

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
Артефакты OS/2

 
Гаджеты

eComStation Runtime and Toolkit 

     Описание      Модули      Рантайм      Тулкит      Изменения      Программы      Контакты      Бюджет               Спонсировать   

eToolkit modules > RegisterHotKey

pmhotkey.dll - Global Hotkeys

Данная библиотека позволяет приложению регистрировать в системе горячие клавиши - клавиши и их сочетания, при нажатии на которые программа получает соответствующее уведомление. Горячие клавиши работают глобально в среде PM - приложение будет получать уведомления вне зависимости от того, какое окно активно (какому окну в данный момент принадлежит фокус ввода). Библиотека требует минимума ресурсов: имеет объём всего 1777 байт и грузится в память один раз при первой регистрации горячей клавиши приложением. Для всех приложений, использующих данную библиотеку используется единый сегмент разделяемой памяти, объёмом в 4 кб и один мутекс. Библиотека автоматически выгружается из памяти, как только все приложения прекращают её использование.

Библиотека экспортирует 2 функции:

APIRET EXPENTRY RegisterHotKey(HWND hwnd, USHORT id, USHORT fsFlags, BYTE ucScanCode); - регистрация горячей клавиши

APIRET EXPENTRY UnregisterHotKey(HWND hwnd, USHORT id); - отмена регистрации горячей клавиши

Эти функции практически полностью повторяют по функционалу и параметрам одноимённые функции Windows. Единственное различие - вместо кода виртуальной клавиши передаётся аппаратный сканкод. Дело в том, что во-первых, в PM, в отличие от Windows, коды виртуальных клавиш есть только у клавиш, которым не соответствуют печатные символы. Соответственно, было бы не возможно регистрировать в качестве горячих алфавитно-цифровые клавиши. Кроме того, в PM VIO (текстовые) окна ведут себя не так, как обычные, графические: сообщения WM_CHAR, приходящие в них, содержат только аппаратный сканкод. Ни символа, ни кода виртуальной клавиши они не содержат. Таким образом, горячие клавиши не срабатывали бы, пока активным является VIO-окно. Для удобства, для аппаратных скан-кодов клавиш стандартной 105-клавишной клавиатуры определены макросы в файле scancode.h

Подробнее о параметрах:

  • HWND hwnd - дескриптор окна, которое будет получать сообщение WM_HOTKEY при нажатии горячей клавиши. Если парамтр равен NULLHANDLE, сообщение будет приходить не конкретному окну, а в очередь сообщений треда, вызвавшего функцию RegisterHotkey.
  • USHORT id - идентификатор горячей клавиши. Он будет приходить в качестве первого параметра (mp1) сообщения WM_HOTKEY.
  • USHORT fsFlags - флаги горячей клавиши. Указывают, какие клавиши должны быть нажаты одновременно с указанной, чтобы она сработала. Допустимые значения - KC_SHIFT, KC_CTRL, KC_ALT.
  • BYTE ucScanCode - аппаратнй скан-код клавиши.

Для отмены регистрации горячей клавиши, функции UnregisterHotkey() следует передать те же значения hwnd и id, какие были указаны при вызов RegisterHotkey(). Таким образом, id должен быть уникален в пределах одного окна или одной очереди сообщений. Для разных окон/очередей значения id могут совпадать.

Параметры сообщения WM_CHAR:

  • mp1: USHORT id - идентификатор горячей клавиши
  • mp2: USHORT fsFlags - флаги, указывающие на то, какие клавиши Ctrl, Alt и Shift были нажаты
  • USHORT usScancode - аппаратный скан-код нажатой клавиши

      Пример использования данной библиотеки смотрите в файле hotkey.cpp.

       


 

 
Обучение новичков

Отчет: OS/2 совместимое оборудование

 
Статьи


   
  Почему eComStation?
Возможности
Особенности
Применение
Ролики и скриншоты
   eComStation для
для бизнесменов
для студентов и инженеров
для продавцов компьютеров
сообщество пользователей
   Разработчик
Распространить программу
Описание API, библиотеки
Начать новый проект
Конкурсы
   Программы
Он-лайн каталог
Выбрать через eCo Market
   Служба поддержки
Отправить вопрос
Купить eComStation
Вопросы и ответы
Обучение новичков
 
 
© 2001 - 2021 eCo Software, All rights reserved
Сибирский Медведь технологическая компания
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae