В WebMarket.ru много товаров по лучшим ценам!:
джойстики
комплектующие
компьютеры
софт и игры
связь
Макросы в SNESKEY9X
Неожиданностью для меня стало то, сколько полезных вещей можно сделать при помощи программы SNESKEY9X и геймпада. Автор программы используя геймпад SNES может играть в quake вобще не касаясь клавиатуры, даже для LOAD/SAVE. К сожалению автор прекратил дальнейшую разработку программы отставив ее в статусе бетты.
Конечно существует огромное количество программ позволяющих назначать макросы клавишам клавиатуры, но интереснее всего запускать их при помощи джойстика.
На любую кнопку (даже на лево-право-вверх-вниз) можно навесить сразу несколько нажатий на клавиатуре, что позволило мне реализовать несколько полезных (для меня) функций. Начнем с самого простого. В папке Examples лежит файл "nes.ski". Содержание его следующее:
[nes]
NumShifts = 0
Shifts =
A = a
B = b
Select = [
Start = ]
Up = num8
Down = num2
Left = num4
Right = num6
Первая строчка указывает, что работать мы будем именно с геймпадом от денди, вторая и третья нужны для конфигурирования "шифтов" . Далее, как видно в нем задается название кнопки и в какую клавишу она будет преобразована.
Назначим кнопке A сразу несколько последовательных нажатий на кнопки. Делать это нужно через запятую:
A = p,a,s,s,w,1,0
Теперь можно это использовать, если по 10 раз на дню вам приходится набирать какой-нибудь пароль. К сожалению результат зависит от состояния CapsLock и текущей раскладки клавиатуры. Даже если набрать в файле конфигурации:
A = P,A,s,S,w,1,0
Результат будет pasw10 без CapsLock PASW10 с CapsLock и зфыц10 если стоит русская раскладка.
К сожалению попробовать получится ли таким образом проворачивать одним нажатием на кнопку джойстика комбо в Mortal Kombat не удалось по причине отсутсвия такового. Желающие могут попробовать самостоятельно.
Важно: Если вам необходимо вставить в макрос несколько последовательных нажатий одной клавиши, sneskey из них сделает одно нажатие. То есть вместо "a,a,a,a" будет "а". Для решения проблемы нужно в промежуток вставить незначащую (в данном приложении) клавишу, например escape: A = a,esc,a,esc,a
Пример посложнее. В одной программе, эксплуатировать которую мне приходится, в одном из диалогов есть два списка - левый и правый и кнопки > и < для перемещения элементов из списка в список. Изначально все элементы находятся в левом списке. Задача перенести все элементы в правый список. Элементов там около 50. Выбрать все сразу программой не предусмотрено. Приходилось кликать на каждом элементе мышкой. Раньше на это уходило около минуты непрерывного кликанья. Ну или пол минуты долбежа по Space-Down. Теперь можно забыть этот кошмар. Вот он макрос - спаситель:
B = repeat space,down
Repeat - ключевое слово реализующее autofire. Дополнительно в скобках можно указывать частоту в герцах: Repeat (10). "space" и "down" сами догадались что. Полный список названий клавиш можно посмотреть в Keys.cfg. (так кнопка с запятой называется comma - до меня не сразу дошло)
Совершенно случайно подмеченный пример:
Допустим надо одновременно нажать Ctrl-X (т.е. вырезать) или Ctrl-V (т.е. вставить). Но в документации ничего не написано про одновременные нажатия. Рискнем:
Select = lctrl,X
Start = lctrl,V
Пробуем: ПОЛУЧИЛОСЬ! То ли такова архитектура windows, толи таков скрытый замысел автора, но это работает. То есть последовательные нажатия клавиш были приняты за одновременные.
Попробуйте теперь поработать таким образом с каким-нибудь текстовым редактором - в правой руке мышь, а в левой джойстик, так, чтобы удобно было нажимать на select и start. Чувствуете разницу?
Пример еще интереснее:
Допустим у вас есть некий файл с огромным списком файлов (кто не знает как такой файл делается: "dir /b > file.txt"):
12.jpg
13.jpg
...
1000.jpg
Допустим вам нужно проделать с этими файлами какие либо действия: например скопировать на другой диск.
Назначаем кнопке B макрос.
B = repeat c,o,p,y,space,end,space,D,:,\,home,down
Открываем файл со списком фалов в редакторе устанавливаем курсор на самое начало текста и жмем на B джойстика (главное во время остановиться). Вот результат:
copy 12.jpg d:\
copy 13.jpg d:\
….
copy 1000.jpg d:\
Теперь сохраняем как bat в той же директории что и файлы и запускаем на выполнение.
2) оформить файлы в HTML страничку:
Вернитесь к исходному вариату файла, встаньте на начало, назначьте:
A = <,i,m,g,space,s,r,c,=,end,>,down
Запускаем: Уау! Программа выполнила недопустимую операцию и будет закрыта! 12 клавиш видимо уже перебор. Путем эксперимента выяснить, каков предел на количество нажатий клавиш не удалось.
Нормально работает
A = 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6
Хотя это уже 16 клавиш.
Возможно ограничего суммарное число скан-кодов, которые соответствуют каждой клавише в файле keys.cfg
Как же быть? Нам поможет буфер и уже освоенная раньше операция вставки из буфера.
Предварительно поместим в буфер строчку
<img border=0 src=
Назначим макрос:
B = lctrl,V,end,>,home,down
Перейдем в начало документа. Выполняем. Что то не то. А именно получился Ctrl-end вместо end. Почему-то при нажатии залипает Control. Попробуем это вылечить: редактируем файл keys.cfg. Добавим в самый конец строчку
9d 9d releas
Которая на языке сканкодов будет обозначать отпустить Control. Вобще-то отпустить ctrl это просто 9d, но иначе ругается SNESKEY
Таким образом получается:
B = repeat lctrl,V,releas,end,>,home,down
И вот результат:
<img border=0 src=12.jpg>
<img border=0 src=13.jpg>
…..
<img border=0 src=1000.jpg>
Дальше дело только за вашей фантазией.
|