Win95Key v3

1. Для чего это программа?

Данная программа предназначена для назначения действий на нажатие клавиш при работе с OS/2 PM. В том числе, она позволяет использовать windoze кнопки и multimedia клавиатуры. Например, вы можете вызывать меню варпцентра при нажатии на windows кнопку или вызывать Mozilla, используя комбинацию ctrl+shift+m. Программа написана таким образом, что вы можете легко назначать новые действия или (если вы разработчик) увеличивать функциональность программы, используя механизм плагинов. Также, начиная с версии 3, в программу включён пакет kbdfix, который позволяет использовать кнопки, которые не отдают корректный сканкод в OS/2 PM и не могут быть использованы в OS/2 стандартными методами. Например, это кнопка Power и Sleep на современных клавиатурах, некоторые MultiMedia кнопки.

2. Установка

Для установки программы распакуйте содержимое архива в любую папку, и запустите REXX скрипт install.cmd, который создаст папку Win95Key на вашем десктопе. Краткое описание содержимого папки:

"PM Conf Configuration program" - PM программа для настройки Win95Key.
"Win 95 Key" - вот и сама программа ;-)
"Tools" - утилиты, полезные при работе с Win95Key (см. ниже).
"src" - исходные коды проекта.

Внимание - не рекомендуется ставить Win95Key поверх уже существующей старой версии, это может привести к проблемам.

3. Конфигурация

Для конфигурации Win95Key запустите программу PM Conf. Это можно сделать из папки Win95Key или нажав ctrl+shift+s (Win95Key должен быть запущен).

3.1 Возможности PM Conf

Программа PM Conf позволяет:

3.2 Добавление событий

После запуска программы вы увидите закладку "Hotkeys", в которой можно просматривать список назначенных комбинаций кнопок и события, которые назначены на них.

Для добавления новой комбинации нужно:

  1. В поле ввода "Code" (скан-код) ввести скан-код клавиши или её название (например "F").
  2. В поле "Modifiers" (модификаторы) выделить кнопки с которыми будет работать данная кнопка (например, CTRL и Shift). В закладке "Settings" вы можете изменять или добавлять модификаторы. Если вы хотите использовать скан-код без модификаторов, то просто не отмечайте модификаторы.
  3. После этого в окне "Plugin" выберите плагин, который вы хотите назначить выбранному сочетанию кнопок и нажмите кнопку "Settings". Добавлять или удалять плагины можно в закладке "Settings"

Для изменения параметров выберите в поле "Hotkey" комбинацию, которую вы хотите изменить, после этого измените параметры и нажмите кнопку "Change".
Для удаления комбинации кнопок выберите её в списке "Hotkey" и нажмите кнопку "Remove".
Для того, чтобы Win95Key восприняла сделанные изменения нажмите кнопку "Apply".

3.3 Добавление/удаленин плагинов

Если вы хотите добавить плагин, то для этого необходимо в закладке "Settings" нажать на кнопку "Add new" в секции plugin. После этого в появившемся диалоге нажмите кнопку "Locate" и в открывшемся диалоге выберите DLL с плагинами.

В окне "Add plugin" появится список плагинов, которые содержит данная библиотека. Выберите те плагины, который бы вы хотели установить в систему и нажмите кнопку "Add". После этого установленные плагины появятся в окне "Function".

Для удаления плагина выберите его в окне "Function" и нажмите кнопку "Remove"

3.4 Добавление модификаторов

Секция модификаторы описывает кнопки, которые используются в дополнение стандартным модификаторам "Ctrl", "Alt" и "Shift". Для добавления модификатора нажмите в секции "Modifiers" кнопку "Add new". После этого введите скан-код модификатора и его название. После этого новый модификатор станет доступным в закладке "Hotkeys" при добавлении новых сочетаний клавиш.
Для удаления или редактирования модификатора выделите его в окошке "Modifiers" и нажмите "Remove" или "Edit"

3.4 Изменение параметров Win95Key

В закладке "Settings" секция global содержит 3 флажка для установки параметров Win95Key.
Флажок "Immediately key reaction" отвечает за срабатывание клавиатуры. Если он установлен, то реакция происходит сразу после нажатия на установленные кнопки, если снят - то только после их отпускания.
Если установлен флажок "Run minimized" то при следующем запуске Win95Key будет запущен минимизированным.
Флажок "hide in tasklist" позволяет не показывать Win95Key в списке задач OS/2. После установки этих параметров необходимо нажать Apply.

4. Пакет KBDfix

Некоторые кнопки на современных клавиатурах не распознаются корректно в OS/2 и не могут быть использованы программой Win95Key (например, кнопки "Power" и "Sleep"). Для того, чтобы обойти этот баг системы и был написан пакет KBDfix.

4.1.Определение сканкода "мёртвых кнопок"

Если у вас на клавиатуре присутствуют нераспознаваемые программой PM Conf кнопки которые вы хотите использовать в OS/2, вам необходимо узнать их сканкод, который возвращает драйвер клавиатуры. Для этого запустите программу "Keyboard DosMon* tester" из папки Win95Key --> Tools. После запуска программы нажмите неработоспособные в OS/2 кнопки и запишите их сканкод (scan=xxx). После этого откройте файл "kbdfixd.cfg" и добавьте строки вида Key=xxx, где xxx - ваш сканкод. Таких строк может быть сколько угодно. По умолчанию в файле уже есть записи для кнопок "Power" и "Sleep"

4.2.Установка демона

Для того, чтобы пакет KBDfix заработал необходимо прописать его запуск в файле config.sys.
Для этого добавьте туда строчку вида
RUN=D:\apps\Win95Key\bin\kbdfixd.exe
(естественно, путь должен быть указан правильно ;-)) и перезагрузите OS/2.

4.3.Использование

После перезагрузки системы клавиши указанные в файле kbdfix.cfg должны распознаваться корректно. Вы можете изменять конфигурацию KBDFix без перезагрузки системы - просто отредактируйте файл kbdfix.cfg и вызовите утилиту "Reload KBDfixD configuration" из папки Win95Key --> Tools.

Внимание! Если вам помогла эта утилита - пришлите ваш файл kbdfix.cfg по адресу samm@os2.ru, в дальнейшем я включу ваши сканкоды в стандартную поставку.

5. Плагины Win95Key

В настоящий момент Win95Key содержит в поставке несколько библиотек плагинов. Библиотека плагинов - это DLL содержащая функции, которые вы можете назначать как реакцию на нажатия. В этой главе содержится краткое описание плагинов и примеры использования.

5.1 Библиотека w95k_std.dll

  1. SwitchTo - переключает в указанную задачу.
    С помощью данного плагина вы можете вызывать нужное вам окно. Окна, соответствующие шаблону переключаются циклически.
    Шаблон поиска может быть задан двумя способами:
    1. Обычный способ: "string1|string2|string3|string..."
      Ищутся окошки, в заголовке которых есть string1 или string2 или string... . Если stringI имеет вид: *text то проверяется наличие в заголовке подстроки text. Если stringI имеет вид: text (первый символ не *) - то проверяется первые символы заголовка на совпадения с text (те заголовок должен начинаться с этого text) Ограничение: первый символ string1 не может быть = '/' (почему - смотри пункт 2)
    2. С использованием регулярных выражений: "/string" (шаблон поиска начинается с /). В этом случае ищутся все заголовки, соответствующие regexp шаблону. Для реализации регулярных выражений используется библиотека pcre.
  2. WindowList - вызывает список задач OS/2
  3. DesktopMenu - вызывает контекстное меню рабочего стола. Опциональный параметр - имя рабочего стола.
  4. WarpcenterMenu - плагин для управления WarpCenter.
    Данный плагин позволяет с помощью клавиатуры получать доступ к возможностям WarpCenter.
  5. OpenObject - открывает объект WPS или запускает программу.
    Вы должны указать имя программы (например, d:\os2\e.exe) или WPS объекта для открытия (например, "<WP_SYSTEM>"). Также необходимо задать параметры запуска. Допустимые значения - DEFAULT, HELP, PALETTE, PROMPTDLG, RUNNING, SETTINGS, TREE, CONTENTS, DETAILS
  6. Volume - Управляет главной громкостью.
    Необходимо выбрать метод установки громкости (0 - MMOS2 MCI, 1 - LIBMIX PIPE APU, 2 - WPS обьект "Volume") и указать действие UP (увеличение), DOWN (уменьшение) или MUTE (вкл/выключить).
  7. MinimizeAll - сворачивает все окна.
    Вы можете указать (через запятую) список исключений.

5.2 Библиотека w95k_od.dll

SwitchToVirtualDesktop - переключает активный рабочий стол в программе Object Desktop

5.3 Библиотека w95k_p.dll

SendToPipe - посылает текст в указанный пользователем PIPE.
С помощью этой программы вы можете легко управлять программами, поддерживающими PIPE интерфейс. Например, Z! mp3 player позволяет управлять практически всеми своими функциями. Так, чтобы приостановить воспроизведение mp3 необходимо послать команду "*pause" в PIPE \pipe\zmp3.
В будущем также планируется добавить в эту библиотеку плагин для управления программой LBMIX.

5.4 Библиотека w95k_apm.dll

ProcessAPM - управление системой APM в OS/2.
С помощью данного плагина вы можете выключить ваш компьютер (POWER_OFF) или перевести его в ждущий режим (STANDBY или SUSPEND).
Плагин требует установленных OS/2 APM драйверов (входят в поставку) и наличия аппаратуры с поддержкой APM.

5.5 Библиотека w95k_sem.dll

SemPoster - постинг OS/2 event семафора.
Данный плагин посылает OS/2 event семафор с заданным пользователем именем. Например, он может быть использован для вызова "WarpButton" программы SysTray. (имя семафора - "\SEM32\SYSTRAY\WARPBTN")

6. Дополнительные утилиты

В папке "Win95Key --> Tools" находятся утилиты полезные при работе с Win95Key.

"Key Info" - отображает сканкод нажатых кнопок, используя OS/2 PM.
"Keyboard DosMon* tester" - отображает сканкод нажатых кнопок, используя функцию DosMonRead.
"Remove win95key <2.xx dll" - удаляет "dll" от старых (0.xx) версий Win95Key.

7. Авторы

Автор программы Win95Key - Viktor Remennik.
Автор PM Conf, KBDfix, APM plugin, PIPE Plugin и некоторых дополнений в Win95Key - Alex Samorukov
Автор SEM плагина, PCRE switchto плагина и некоторых изменений в Win95Key - nickk

8. Отдельное спасибо

Samuel Audet guardia@cam.org for original idea
Dmitry Ban for event processing idea
Sergey Yevtushenko for help with WarpCenter's sizes
Stangl Roman (rstangl@vnet.ibm.com) - за APM/OS2 toolkit.
Vadim Yegorov (vy@org.vrn.ru) - за порт PCRE.

9. Список изменений

Список изменений находится в файле changelist.txt