Помощь - Поиск - Пользователи - Календарь
Полная версия: Управление с клавиатуры
ПерехватЪ > Программа "ПерехватЪ" > Вопросы
wtiger
Перехват работает с пультами, это хорошо. А как заставить его перехватывать клавиатурные комбинации, включая расширенные мультимедийные (HID)? Хочу, чтобы за все действия по пульту и клавиатуре отвечала одна программа. Сейчас пользую SlyControl, но он уже не развивается, а в виндовс 7 есть нюансы, из-за которых его использовать неудобно. И еще от Punto Switcher бы отказаться - слишком большой функционал, а мне нужна только переключалка на правый Ctrl... В общем, такой вот вопрос smile.gif
gonzales
Цитата
В общем, такой вот вопрос

использовать режим мультикей. подробно написано в мастере настройки, если что-то не получится, пишите, подскажу
wtiger
Цитата(gonzales @ May 29 2010, 19:44 ) *
Цитата
В общем, такой вот вопрос

использовать режим мультикей. подробно написано в мастере настройки, если что-то не получится, пишите, подскажу

Частично разобрался, спасибо smile.gif Появились-таки вопросы.
1. На одиночное нажатие Next - переключить трек. Если нажать Next и не отпускать - поскакали по 10 секунд по текущему треку. Так сделать можно?
2. Можно ли повесить переключение регистра с английского на русский и наоборот на перехват?
3. Как в экранном меню сделать несколько пунктов для запуска разных программ?
4. Не все клавиши с мультимедийной клавиатуры ловятся. Только самые стандартные (кстати говоря, на их нажатие отрабатывает и системная реакция). У меня клавиатура Defender Zodiak - на ней много удобных клавиш, но часть из них обрабатывается HID-устройством, перехват их не ловит.
Буду благодарен за ответы. Если что-то решается чтением документации, просто обозначьте, какие из пунктов, постараюсь сам разобраться.
gonzales
Цитата
На одиночное нажатие Next
нажатие на пульте или клавиатуре? по идее это должно работать.
Цитата
Можно ли повесить переключение регистра с английского на русский и наоборот на перехват?

напишу маленький модуль, подклюив который будет можно.
Цитата
Как в экранном меню сделать несколько пунктов для запуска разных программ?

сделать несколько пунктов с запуском приложений для разный программ.


да, HID-клавиши пока не ловятся. А зачем их переопределять? они и так служат для управления медиаконтентом и т.д.
wtiger
Цитата
нажатие на пульте или клавиатуре? по идее это должно работать
И то, и другое меня интересует. Попробую разобраться, если не получится - вопрошу smile.gif

Цитата
напишу маленький модуль, подклюив который будет можно

Спасибо, это будет просто замечательно!

Цитата
сделать несколько пунктов с запуском приложений

Если б это получилось, я б не стал спрашивать. Получается один пункт под названием "Запустить", который при попытке добавить второй заменяется им под тем же названием. Два и более пунктов не создаются. Другое действие - без проблем, а вторую программу никак не получается.
Еще вопрос: вид экранного меню настраивается? Хотелось бы ему фон добавить полупрозрачный...
wtiger
Цитата
да, HID-клавиши пока не ловятся. А зачем их переопределять? они и так служат для управления медиаконтентом и т.д.

Дело в том, что на клавиатуре куча клавиш, которые запускают ворд, эксел, аутлук, блокируют компьютер и т.д. Некоторые клавиши ловятся нормально, некоторые ловятся не совсем нормально (отрабатывает назначенная в системе функция), а некоторые не ловятся. Их обслуживает громоздкая и глупейшая программа, в которой нормально не переназначить никакие действия. А меня не устраивает то, что там сделано по умолчанию, я хочу сделать клавиатуру удобной для себя, а не подстраиваться под решения недалеких программистов дефендера...
Медиаконтент - медиаконтентом, но больше половины клавиш я так до сих пор и не использую, поскольку не могу задать им устраивающую меня реакцию.
gonzales
ясно. попробуем подключить нашего специалиста по HID-устройствам

Цитата
Если б это получилось, я б не стал спрашивать. Получается один пункт под названием "Запустить", который при попытке добавить второй заменяется им под тем же названием. Два и более пунктов не создаются. Другое действие - без проблем, а вторую программу никак не получается.

действительно, есть такой косяк! будем исправлять
wtiger
1. Разбираюсь с настройкой paf. Появился вопрос: как сделать в одном файле несколько типов messages? Например, для WM_CHAR и WM_KEYDOWN идентификаторы разные - приходится два файла клепать, что не есть изячно.

2. Добавил картинку к OSD. Например: {img~C:\PROGRAM FILES\PEREHVAT\IMAGES\vol.bmp}Громкость+. Логично, если картинка отобразится перед словом "Громкость+". Но она почему-то отображается после него.

3. Небольшое неудобство: если задавать картинку так: {img~"C:\PROGRAM FILES\PEREHVAT\IMAGES\vol.bmp" }Громкость+, то выдается ошибка. А ведь путь к файлу, по идее, валидный.

4. Хотелось бы более простую настройку такого поведения: при переключении песенки (в винампе, например) показывается ОСД с ее названием. Вроде бы это можно сделать настройкой actions, но заковыристо как-то получается. Мне кажется, если расширить список метакоманд OSD, это будет уместно. Например, перенос строки неплохо бы. (К слову, вывод ID3-тега происходит через две-три секунды - в чем может быть дело? Все остальные ОСД показываются сразу.)

5. Если приключилась какая-то ошибка в процессе отработки реакций, то все дальнейшие события перехват полностью игнорирует. Приходится его выгружать и загружать снова. Выключение/включение не помогает.
gonzales
Цитата
1. Разбираюсь с настройкой paf. Появился вопрос: как сделать в одном файле несколько типов messages? Например, для WM_CHAR и WM_KEYDOWN идентификаторы разные - приходится два файла клепать, что не есть изячно.
да, планирую для продвинутых пользователей сделать такую опцию. на данном этапе можно либо сделать два paf-файла либо воспользоваться действием "Оконные сообщения". А попутно вопрос, для какой программы плагин?

Цитата
2. Добавил картинку к OSD. Например: {img~C:\PROGRAM FILES\PEREHVAT\IMAGES\vol.bmp}Громкость+. Логично, если картинка отобразится перед словом "Громкость+". Но она почему-то отображается после него.

логично, но обработчик обрабатывает сначала текст а потом картинки. Но попробую сделать по уму.
Цитата
3. Небольшое неудобство: если задавать картинку так: {img~"C:\PROGRAM FILES\PEREHVAT\IMAGES\vol.bmp" }Громкость+, то выдается ошибка. А ведь путь к файлу, по идее, валидный.

не понял, в смысле путь в кавычках?
gonzales
Цитата
4. Хотелось бы более простую настройку такого поведения: при переключении песенки (в винампе, например) показывается ОСД с ее названием. Вроде бы это можно сделать настройкой actions, но заковыристо как-то получается. Мне кажется, если расширить список метакоманд OSD, это будет уместно. Например, перенос строки неплохо бы. (К слову, вывод ID3-тега происходит через две-три секунды - в чем может быть дело? Все остальные ОСД показываются сразу.)
две - три секунды потому как не все пользуются винампом и обращаться приходится не к нему а вообще ко всем открытым файлам, искать среди них mp3 если он есть, а уж потом получать его ID3.
Расширить список OSD можно. сделаю.

Цитата
5. Если приключилась какая-то ошибка в процессе отработки реакций, то все дальнейшие события перехват полностью игнорирует. Приходится его выгружать и загружать снова. Выключение/включение не помогает.

можно подробнее в каких местах.

ЗЫ. Спасибо за развернутое тестирование!!!!
wtiger
Цитата
А попутно вопрос, для какой программы плагин?
MPlayer. Пока сделал два файла.
Еще пытался для FastStone Image Viewer сделать, но что-то не получается...

Цитата
не понял, в смысле путь в кавычках?

Конкретно у меня это в фарменеджере путь в кавычках копируется. Вообще - виндовс пути с пробелами обрабатывает правильнее, если его в кавычки поместить. (А пробел в конце - это фаровский нюанс.)

Цитата
две - три секунды потому как не все пользуются винампом и обращаться приходится не к нему а вообще ко всем открытым файлам, искать среди них mp3 если он есть, а уж потом получать его ID3.

Хм, понятно... Может, как-то можно этот процесс оптимизировать?
wtiger
Цитата
Расширить список OSD можно. сделаю.
Будет здорово! smile.gif

Цитата
можно подробнее в каких местах.

К примеру, если путь к картинке поставить с кавычками, то выдает ошибку обращения к файлу. Ну там ОК, все как полагается... Но после этого ни на какие нажатия не реагирует - ни на клавиатуре, ни на пульте.
Пульт от Behold TV H6.

Цитата
ЗЫ. Спасибо за развернутое тестирование!!!!

Дык пользуюсь smile.gif Вам спасибо! smile.gif))
gonzales
Цитата
напишу маленький модуль, подклюив который будет можно

вот. плагин смены раскладки клавиатуры. подключаем через действие "подключаемый модуль"
wtiger
Цитата(gonzales @ Jun 7 2010, 00:40 ) *
Цитата
напишу маленький модуль, подклюив который будет можно

вот. плагин смены раскладки клавиатуры. подключаем через действие "подключаемый модуль"

Спасибо! smile.gif

Поехали дальше по ошибкам smile.gif))
1. Последовательность действий:
- отключить перехват
- настройка устройства
- выбрать плагин кейбоард
- инициализация кнопок
(кстати, в этом режиме блокируется правая скобка, ее невозможно набрать)
- в названии что-нибудь набрать
- закрыть инициализацию (без сохранения)
- настройка устройства
- выбрать плагин тюнера (у меня Behold TV H6)
- получаем: "Ошибка при удалении файла или папки. Не удается удалить Perehvat. Нет доступа. Диск может быть переполнен или защищен от записи, либо файл занят другим приложением."

Но дальше все вроде работает. Воспроизводится?

2. Я хочу забиндить на переключение языков только клавишу, без использования кнопок пульта. Почему-то у меня это не получается. Если сделать активным плагин keyboard, то клавиша ловится, но (почему-то) исключительно если в фокусе окно настройки перехвата. Если в фокусе любое другое окно, то уже не ловится. Если активен плагин тюнера, то не ловится вообще.
gonzales
1. плагин keyboard сам по себе достаточно глючный, если у Вас USB клава лучше использовать плагин под HID устройства.
2. я не уловил, вы используете два плагина???? а как Вы их переключаете, у вас может быть использован только конкретный плагин, например от тюнера. если вы хотите дополнительно к плагину использовать клавиатуру, то нужно использовать режим мультикей (без настройки доп. плагина под клавиатуру)
Цитата
Если сделать активным плагин keyboard, то клавиша ловится, но (почему-то) исключительно если в фокусе окно настройки перехвата. Если в фокусе любое другое окно, то уже не ловится. Если активен плагин тюнера, то не ловится вообще.

не понял... что не ловится?
wtiger
Цитата
1. плагин keyboard сам по себе достаточно глючный, если у Вас USB клава лучше использовать плагин под HID устройства.
Попробовал плагин, с ходу не разобрался... Какая-то отдельная совсем программа... Надо бутылками запастись smile.gif Но если поддержка HID появится в общем режиме при мультикее, то этот плагин и не будет нужен?

Цитата
2. я не уловил, вы используете два плагина????

Э-ммм... Я почему-то полагал, что для настройки клавиатуры нужно переключать плагин на клавиатурный, а мультикей задействует оба плагина сразу. Значит, ошибся. Но тогда вопрос остается - как добавить клавишу, на которую будет вешаться только клавиатурное нажатие, без кнопки пульта?

gonzales
Цитата
как добавить клавишу, на которую будет вешаться только клавиатурное нажатие, без кнопки пульта?

никак. режим мультикей предполагает дублирование команд пульта с клавиш клавиатуры.
wtiger
Цитата(gonzales @ Jun 11 2010, 22:15 ) *
Цитата
как добавить клавишу, на которую будет вешаться только клавиатурное нажатие, без кнопки пульта?

никак. режим мультикей предполагает дублирование команд пульта с клавиш клавиатуры.

Вот. В том-то и дело. Тогда вопрос: реально ли, что в некотором не столь отдаленном будущем перехват будет понимать клавиатуру независимо от пульта? smile.gif
wtiger
Еще пожелание вспомнил smile.gif Вот есть переключение пресетов в зависимости от приложения. Оно срабатывает, если приложение получает фокус. У меня бывает так, что при активном приложении (и нужном пресете) активируется другая программа, соответственно фокус теряется и пресет сбрасывается на дефолтный. Мне кажется, напрашивается опция для пресетов - что-то типа "активировать только при активном приложении"/"активировать при запущенном приложении".
gonzales
Цитата
Вот. В том-то и дело. Тогда вопрос: реально ли, что в некотором не столь отдаленном будущем перехват будет понимать клавиатуру независимо от пульта?
не знаю, пока не думал об этом. В принципе это сделать не очень сложно, но надо сначала все обдумать.

Цитата
Еще пожелание вспомнил Вот есть переключение пресетов в зависимости от приложения. Оно срабатывает, если приложение получает фокус. У меня бывает так, что при активном приложении (и нужном пресете) активируется другая программа, соответственно фокус теряется и пресет сбрасывается на дефолтный. Мне кажется, напрашивается опция для пресетов - что-то типа "активировать только при активном приложении"/"активировать при запущенном приложении".

не совсем понял что имеется в виду.
wtiger
Цитата(gonzales @ Jun 21 2010, 21:36 ) *
Цитата
Вот. В том-то и дело. Тогда вопрос: реально ли, что в некотором не столь отдаленном будущем перехват будет понимать клавиатуру независимо от пульта?
не знаю, пока не думал об этом. В принципе это сделать не очень сложно, но надо сначала все обдумать.

Цитата
Еще пожелание вспомнил Вот есть переключение пресетов в зависимости от приложения. Оно срабатывает, если приложение получает фокус. У меня бывает так, что при активном приложении (и нужном пресете) активируется другая программа, соответственно фокус теряется и пресет сбрасывается на дефолтный. Мне кажется, напрашивается опция для пресетов - что-то типа "активировать только при активном приложении"/"активировать при запущенном приложении".
не совсем понял что имеется в виду.

Вкратце. Запускаю mplayer. Активируется пресет mplayer. При работающем mplayer переключаюсь в браузер. Пресет меняется на дефолтный. А мне нужно, чтобы оставался пресет mplayer.
Опционально, конечно же smile.gif
gonzales
а если отключить настройку "сбрасывать на дефолтный"? или тогда в других случаях не будет работать? Пока не уловил логику в каких случаях программа должна сбрасывать пресет а в каких нет.
wtiger
Ладно. Постараюсь подробно smile.gif
Что я хочу:
1. Стандартно - пресет с настройками для управления звуком, винампом и т.д.
2. Если запускаю lightalloy или mplayer (винамп при этом не выгружаю, пусть живет), пресет переключается на соответствующий. Во время работы плеера я переключился в браузер, жена где-то там лентяйкой рулит фильмами и т.д.
3. Я закрываю плеер - активируется пресет по умолчанию.
Что сейчас:
На пункте 2, если во время работы плеера я переключаюсь в браузер, активируется пресет по умолчанию.
Если снять галочку "Сбрасывать на пресет по умолчанию", то в пункте 3 при закрытии плеера пресет по умолчанию не активируется.
Что делать?
gonzales
я понял, нужно в таблице выбора пресетов для сопоставления с приложениями добавить столбец "фиксировать пресет", при запуске такого приложения пресет перестанет меняться. Но это я сделаю со временем.

пока могу посоветовать воспользоваться действием "работа с перехватом -> включить выключить привязку" создать какие-нить экшены для этого.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2012 Invision Power Services, Inc.