Welcome to eComStation.RU site!

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

Frequently asked questions and answers:

eComStation.RU

ru · en · de · es · it · pt · cz · pl · fr
eComStation is a greatly different operating system for PC (IBM OS/2 Warp)
Applications, news, reviews, support of users, hardware, questions and answers.
 
      What is OS/2?NewsInstallUpdateUsageFutureCommunityBuy    
(Map of the site)

 
 
Database of OS/2 compatible hardware

 
Update

 
Applications

 
Advantages:

 
For developer:

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

 
Companies:

 
History:

 
(Бонусы)

 
Advice:

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

 
Technologies:

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

 

 
Solutions

 
New eComStation:

 
Future:

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

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

 
OS/2 artefacts:

 
Gadgets:

eComStation Runtime and Toolkit 

     Description      Modules      Runtime      Toolkit      Whatsnew      Applications      Contacts      Budget               Sponsor   

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.

       


 

 
For dummies

Report: OS/2 compatible hardware

 
Reviews


     
  Why eComStation?
Features
Advantages
Usage
Clips and screenshots
   eComStation for
for businessmen
for students and engineers
for reselles of computers
community of users
   Developer
Distribute the program
Description of API, libraries
Start new project
Competition
   Applications
On-line catalogue
Select from eCo Market
   Support service
Contact the web-master
Buy eComStation
Frequently asked questions
for Beginners
 
 
© 2001 - 2014 eCo Software, All rights reserved
eComStation is a registered trademark of Serenity Systems International
OS/2 Warp is a registered trademark of IBM Corporation
 

 

 
Picture of the day: