среда, 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


28 комментариев:

  1. Пробовал запустить тремя способами: обычным, от имени администратора, через устранение неполадок совместимости, результат один - запускаю установленную программу, мелькает окно командной строки и затем Windows пишет "Прекращена работа программы". Win7sp1x64pro, Asus N56VZ.

    ОтветитьУдалить
    Ответы
    1. Нужен текст сообщения со стека.
      При запуске прога пытается подключится к Skype и драйверу ATK.
      Skype установлен?
      Попробуй новую версию

      Удалить
    2. Новая версия, должно помочь.

      Удалить
    3. Запустилась. Но Skype был установлен, просто не запущен. Итак, итоги попытки настроить воспроизведение на клавиши курсора + Fn:
      1. Срабатывает не всегда. Кстати длительное нажатие помогает.
      2. После установки слетает Life Frame, помогает переустановка последней.
      3. Иногда (как я понял если задать горячую просто "V", а не Ctrl+чтнб) вылетает ошибка NET Framework и тогда программа закрывается.
      http://s47.radikal.ru/i117/1305/4c/ca1e4d863c24.png
      http://s019.radikal.ru/i633/1305/09/306c2f4c47de.png

      Удалить
    4. Ай нет, Life Frame слетает каждый раз при запуске программы. Намучался :( Надо нам может в другое место какое уйти пепеписываться? Доведем до ума программку? :)

      Удалить
    5. Попробуй с Life Frame должно пройти. По второй мне нужны детали которые открываются если нажать "Details"

      Удалить
  2. Эх, и совсем забыл поблагодарить за отзывчивость, хоть у меня и не работает... Спасибо! :)

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

    ОтветитьУдалить
  4. Владислав! большущее спасибо! ждал когда умные люди сделают что-то подобное около года! отлично функционирует на N56Vz. спасибо!

    ОтветитьУдалить
  5. Владислав, тут такое дело, я занимался Хакинтошем для наших ноутбуков и выявил что подсветка клавиатуры поддерживает 256 режимов. Давайте как-нибудь свяжемся и попробуем сделать это под Windows?

    ОтветитьУдалить
    Ответы
    1. Да, я знаю про то что подсветка имеет 0-255 яркости, но дело в том, что драйвер в винде позволяет только 0-3. Можно конечно копаться в драйвере, но это много времени, а профит не очень понятный, мне например достаточно и этих 4. Если у Вас есть время и желание можете дебагером пройтись и найти код ответсвенный за это. Мне интересно, а зачем столько уровней яркости вам?

      Удалить
    2. Ну я не предлагаю использовать все 256 уровней, например сделать 16. Это будут более приятные переходы. Я знаю что в DSDT есть функция которая отвечает за установку яркости клавиатуры, там вот в ней 4 режима. Патчить биос не охото, хочется как-то реализовать это на уровне системы.

      Удалить
  6. Владислав, больше спасибо за Ваш труд еще раз, скажите это нормально что у меня при запущенной вашей программе не работает сочетание Fn+Enter NumLock - вызов калькулятора. можно ли его как-то сова активировать?
    Спасибо!

    ОтветитьУдалить
    Ответы
    1. Нет. Должно все работать.
      Возможные причины:
      1. Отсутствует сalc.exe
      2. Asus поменял вызов calc.exe из HControl в DMedia
      3. Проблемы в драйвере ATK.

      1. Попробуйте удалить мою программу, потом переустановить ATK драйвер.
      и посмотреть будет ли вызываться Calc.exe
      2. Установить мою программу.
      Если пропадет вызов калькулятора, то скорее всего Asus что то поменял.
      Тогда напишите версию драйвера, я попробую исправить.

      Удалить
    2. Калькулятор есть,
      если удалить Вашу прогу все работает хорошо.
      Properties HControl выдает номер версии - 1.0.75.4, не знаю то ли это что надо.

      Удалить
    3. Сделал новую версию. Можно на (e)nter назначить свою программу.

      Удалить
    4. да, все заработало! большое спасибо, Владислав!

      Удалить
  7. Добрый вечер!
    Два вопроса: зачем приложение лезет в InternetSettings (согласно Outpost Firewall)?
    и почему в Windows 8.1 подсветка мигает при передвижении ползунка и сразу гаснет, а Dynamic light не работает?

    ОтветитьУдалить
    Ответы
    1. Извиняюсь )) От музыки и от нажатий - работает.
      Было бы круто подсвечивать клавиши по нажатию, по очереди друг за другом. Практической пользы никакой, но смотрелось бы неплохо )

      Удалить
    2. При установке лезет в InternetSettings? Возможно что то инсталлятору надо. А сама рога вроде не должна, хотя может какой компонент лезет - фиг знает.

      Удалить
    3. "Было бы круто подсвечивать клавиши по нажатию"
      Физически невозможно, вся подсветка это параллельно запитанные светодиоды

      Удалить
    4. С заблокированным доступом туда - и разрешенным к клаве - работает.
      Да насчет параллельного питания понятно, но можно же помечтать на ночь глядя ) Спасибо за софтинку, это талант.

      Удалить
  8. Владислав, добрый день!
    Во-первых, хотел еще раз сказать вам спасибо за программку - пользуюсь ей до сих пор - все -замечательно..
    Во-вторых, вопрос о расширении поддержки линейки ноутбуков ;) приобрел ноутбук Asus Zenbook UX32Ln - и хотя ноутбуки родственные, ваша утилита функционирует на нем не полностью: модуль подсветки клавиш работает корректно, однако возможность переназначать клавиши вываливается с ошибкой =( (После нажатия новой комбинации программа прекращает свою работу с критической ошибкой).
    нет ли у Вас возможности адаптировать ваш продукт и для zenbook-ов?
    Еще раз спасибо большое, независимо от вашего ответа)

    ОтветитьУдалить
    Ответы
    1. Ну такого ноутбука у меня нет. Но можно попробовать решить проблему.
      Отправьте скриншот с ошибкой мне на адрес kulasov@gmail.com

      Удалить
    2. Большое спасибо за ответ!
      уточнение: обновился до 8.1 теперь программа не вылетает, мало того даже заработали 3 клавиши - fn+C, fn+T и fn+V - на них можно повесить запуск любой программы. При этом если нажать fn+V то вместе с программой запустить приложение "Камера" (это видимо прописано в ATK).
      Также есть подозрение, что стрелочный блок не работает, т.к. теперь на него "повесили" home, end, page up и page down, вместо вперед/назад, стопа и паузы.

      в принципе лично мне бы хватило возможности повесить на fn+c команду "Play/pause", возможно это будет проще, чем все остальное.

      Удалить
    3. У вас на буке нет мультимедийных кнопок и расширенной клавиатуры.
      А на FN + стрелки повесили действия стандартной.
      К сожалению тут сделать ничего нельзя.

      Удалить
    4. ок, а нет ли возможности забиндить на fn+c вместо запуска программы эмуляцию нажатия Play/Pause?

      Удалить
    5. Евгений, Я тут сделал программку которая решит вашу проблему.
      https://drive.google.com/file/d/0B-FaQPtwC6YxVllRMDUtcXZBdVU/view?usp=sharing
      использование SendKeyToProgram.exe play
      настройки в settings.xml
      Если есть вопросы пишите. Скоро добавлю инструкцию по использованию проги.

      Удалить