среда, 1 мая 2013 г.

Свои действия на мультимедийные кнопки в Asus

По просьбе Олега Петушкова написал программу управления мультимедийными кнопками.
Проект вырос с проекта Мигаем подсветкой клавиатуры.
Программа заменяет C:\Program Files (x86)\ASUS\ATK Package\ATK Media\DMedia.exe
Чтоб все корректно работало DMedia.exe убрана из автозагрузки
Теперь о программе.
Возможности:

  1. Мигает подсветкой клавиатуры при приходе сообщения или поступления звонка Skype (Внимание! Microsoft прекращает поддержку Skype Desktop API т. о. данная функциональность может пропасть при установке новых версий Skype)
  2. Включает подсветку по расписанию
  3. Динамически подсвечивает клавиатуру когда нажимаете кнопки
  4. "Цветомузыка" - мигаем в такт музыке.
  5. Запускает 6 приложений кнопками FN+: Media(Instant key), 1, T, C, V и Enter цифровой клавиатуры (Настраивается)
  6. Посылает short cuts в программы указанные в списке.
  7. Имеет на каждую multimedia кнопку курсора 2 действия.   

Программа перехватывает все события посланные в DMedia от HControl и передает дальше в зависимости от настроек.
Установка:
  1. Установить программу из инсталляции.
  2. Настроить под свою программу (по умолчанию в списке присутствует управление VLC плейром).
 Настройка:
Управляемые программы ищутся по заголовку окна который определяется в поле "Title" с помощью regex 
Поле "Name" - просто имя программы(не несет функциональности)
Поле "Active" - использовать данное правило. (если галочка не стоит то обрабатываться не будет)
Поле "Post/Send" - использует разные методы работы с программой Send(галочка присутствует)  - посылает в активное окно нажатия кнопок, по этому окно которым управляем становится активным, Post посылает сообщения в любое окно и не делает это активным (нестабильно, использовать на свой страх и риск, может приводить к падению программ)
Поле "IfForeGround" - команды будут обрабатываться только если вы работаете в этом окне, окна помеченные этой галочкой обрабатываются в первую очередь.
Поле "RetToFront" -  возвращает в активность окно с которым вы работали перед нажатием кнопок, используется совместно с "Send"
Действия кнопок курсора программируются с помощью Keys Enumeration вписываем Member name кнопки через +. Пример CTRL+Left: ControlKey+Left
Кнопки поддерживают двойное быстрое нажатие таким образом можно запрограммировать 8 действий.
Скачать инсталляцию
Если есть баги(а они есть ;), то пишите)
02.05.2013 12:53 - новая версия исправил проблему со Скайпом. По идее если скайп не установлен, то теперь не будет вылетать, а только отключать функциональность мигания.
03.05.2013 - Пофиксил ошибки, спасибо Олегу Петушкову за помощь в тестировании и вылавливании ошибок.
05.05.2013 - Версия 2.0.2: В метод Post добавлена работа с кнопками alt, ctrl, shift
для окна определенного с помощью ".*" в Title события идут в текущие окно, таким образом можно делать глобальные short cuts. Мелкие исправления.
05.05.2013 - Версия 2.0.3: Добавил возможность запуска приложений с параметрами
Пример: открытия любимого сайта explorer.exe http://google.com
05.05.2013 - Версия 2.0.4: Теперь программа ест намного меньше памяти
07.05.2013 - Версия 2.0.5: "*." обрабатывается после окон помеченных "IfForeGround"
Добавлена в установку настройка для медиа кнопок и youtube.
12.05.2013 - Версия 2.0.6: Исправлена работа со Skype, убраны настройки youtube.
26.05.2013 - Версия 2.0.7: Добавлена автоматическое включение подсветки клавиатуры по времени, Добавлена динамическое включение подсветки, нажали на кнопку подсветка загорелась и через заданный промежуток потухла.
01.06.2013 - Версия 2.0.8: Добавлена "Цветомузыка" мигаем в такт музыке ;) Полезности ни какой, за то прикольно. Мелкие исправления и улучшения.
18.06.2013 - Версия 2.0.9: Много исправлений, меню в трее.
19.06.2013 - Версия 2.1.0: Исправление ошибок,  переименование проекта.
20.06.2013 - Версия 2.1.1: Добавлена функция Spark, устранена утечка памяти из-за SkypeApi.
02.11.2013 - Версия 2.2.1: Добавленна возможность на enter цифровой клавиатуры назначить своё приложение.
11.09.2014 - Подтверждена работа на ноутках Nx6, G550 и др.

Известные проблемы: При приходе сообщения не мигает - Skype API генерирует события после первых 2-х...4-х сообщений.

Примеры для Title:
.*VLC - ищет окно с названием в конце VLC
.* - любое окно

Примеры для кнопок:
для Alt + Ctrl + Shift + 2  вписываем LMenu+ControlKey+ShiftKey+D2

Пример запуска VLC:
"C:\Program Files\VideoLAN\VLC\vlc.exe" d:\music
Откроет VLC и проиграет музыку которая в d:\music


Скриншоты:

Если в окно Title ввести ".*", поставить галку на "Post/Send" и ввести в качестве горячих Up - MediaStop, Down - MediaPlayPause, Left - MediaPreviousTrack, Right - MediaNextTrack, то можно управлять приложением, поддерживающим клавиши мультимедиа, например Winamp