Что нового

На комбинацию из любых 2-х клавиш назначать любую 3-ю (безграничный функционал)

mrbig

Новичок
Сообщения
5
Репутация
0
Версия AutoIt: 3.3.8.1

Описание:
все здравствуйте!
я даже пока не новичок
я зарегиситрировался для этого:

нужна программа позволяющая:
1) программировать любую клавишу на комбинацию из любых других (к примеру ЗАЖИМАЕМ И УДЕРЖИВАЕМ ""Й", а комп отвечает как УДЕРЖАНИЕ "Ц+У"... ну или если это никак невозможно то хотя бы на комбинации с клавишами ctrl alt shift итд...)
2) на комбинацию из любых 2-х клавиш назначать любую 3-ю одиночную (к примеру УДЕРЖИВАЕМ "Й+Ц" и комп понимает это как УДЕРЖАНИЕ "У")

- Причём удерживание в обоих вар-тах тоже работало бы как удерживание тех клавиш, на к-рые запрограммировано, это для 3d-игр
- соответственно должны работать комбинации, например удерживание одной (клавиши или комбинации), и при этом нажатия другой давали бы соответствующий эффект, именнно на время удержания каждой
- я пишу любые, но конечно можно и с исключениями
- комбинации из 3-х и 4-х клавиш тоже весьма желательны (для большего функционала)
- цель - расширить функционал кнопок под пальцами в 3d-играх. ну и для офиса\интернета итд заодно тоже
- к примеру имея под пальцами 6 кнопок, у нас получится больше 15, согласитесь очень полезно...
- никаких пауз или задержек разумеется быть не должно, зажатие должно работать чётко на время зажатия и завершаться при отпускании

Для большей наглядности конкретный ПРИМЕР:
(собственно из этого и родилась идея и это сейчас первостепенная задача, всё остальное просто решится по аналогии):

Итак есть 3d-игра gta san andreas, управление движением героя WSAD, при удержании одной из них (или комбинаций, ну это стандарт 3д-игр) герой движется ЛЁГКИМ БЕГОМ.
если к этим клавишам движения ещё удерживать LALT (левый альт) то герой начинает идти МЕДЛЕННЫМ ШАГОМ, естественно пока удерживаем, стоит отпустить LALT но продолжая держать скажем W+D то герой снова продолжит движение ЛЁГКИМ БЕГОМ, то есть сам по себе зажатый LALT ничего не даёт, а работает только в сочетании с WSAD
- так вот моя цель - обменять местами эти 2 вида движения, т.е. при просто WSAD герой бы двигался МЕДЛЕННЫМ ШАГОМ, а при удержании WSAD + дожимая LALT (ну или любая другая назначаемая клавиша) герой бы двигался ЛЁГКИМ БЕГОМ

1-й ВАЖНЫЙ МОМЕНТ: естественно тут не должно иметь значения то, какую клавишу мы зажали раньше (то есть полная аналогия с оригиналом).

2-й ВАЖНЫЙ МОМЕНТ: вне сочетаний каждая кнопка разумеется должна выполнять сыою ф-ию, например A-влево, D-вправо, а пересечение A+D - скажем пусть даёт кнопку M (показать карту...)

а теперь как это реализовать скриптом к-рый я запросил в начале:
- в меню игры стандартное движение (к-рое лёгкий бег) вместо WSAD переназначаем на посторонние клавиши, скажем на соответственно расположению NUMPADы: 5, 2, 1 и 3.
- с помощью autoit зажатие клавиши W заставляем отвечать как зажатие W + LALT, а клавиши S,A и D аналогично (то есть нажатие WSAD без LALT теперь будут давать медленный шаг)
- с помощью autoit зажатие клавиш W + LCTRL(к примеру) заставляем отвечать как зажатие клавиши NUMPAD 5, а клавиши S,A И D + LCTRL тоже аналогично (теперь нажатие WSAD + LCTRL будут давать лёгкий бег)

3-й ВАЖНЫЙ МОМЕНТ: если человек нажимает более одной клавиши, ОДНО СОЧЕТАНИЕ (ИЛИ КЛАВИША) НЕ ДОЛЖНО БЛОКИРОВАТЬ ДРУГОЕ (ДРУГУЮ), ОНИ ДОЛЖНЫ СУММИРОВАТЬСЯ, например мы запрограммировали всё вышеперечисленное и для шага по диагонали вперёд\вправо на 45гр. вправо нажимаем W+D (скрипт это переводит в значения (W+LALT)+(D+LALT)), так вот это должно работать как W+D+ALT, и давать движение героя по диагонали

...и всё, так движение по умолчанию станет шагом, а для лёгкого бега нужно ещё удерживать LALT, это более естественно.

Так вот имея эту возможность сможем вытворять с комбинациями клавиш всё что угодно, скажем вместо LALT можно назначить ту же клавишу S, к-рая уже под пальцем (то есть сочетание W+S будет давать лёгкий бег), а для LALT освободится на что-либо другое! экономия сэр!
или например часто ли в 3д-играх нажимаем сочетание A+D (вправо+влево)? - никогда. а теперь сможем на эту комбинацию назначить скажем показ карты итп...
- или сочетания из 3 или 4 клавиш тоже многократно увеличивают функционал всё тех же WSAD под пальцами, задействовав неиспользуемые сочетания. например A+S+D - присесть, A+W+D - перезарядка оружия, W+S+A+D - итп...

или дополнительная фича в офисе: просто положите 3 пальца на удобные вам кнопки и у вас уже все ф-ии типа копировать\вставить\вырезать\выделить всё\отменить\enter\backspace - так как у вас под рукой уже реально 7 клавиш а не 3. ну а если 4 пальца положите так там вообще полно вариантов сочетаний, просто запомнить и всё - это многократно сэкономит ваше время в браузерах, проверено!

Вобщем я предлагаю кардинально оптимизировать функционал клавиатуры, и честно говоря сильно удивлён что такой программы до сих пор не нашёл...)))

И пара вопросов:
-может кто знает программы к-рые это уже могут проще?
-И также неясен вопрос, что в моём случае будет жрать больше памяти, какая-либо запущенная готовая прога типа keyboard maniac или autoit? (просто я подозреваю что autoit скрипт будет жрать по определению меньше, но хотелось услышать подтверждение от знающих, т.к. я не программист ни разу, разве что номера\названия кнопок переназначить смогу по аналогии по таблице...)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Re: На комбинацию из любых 2-х клавиш назначать любую 3-ю

Код:
Send
_IsPressed
HotKeySet

Здесь ответы на все твои вопросы.
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Re: На комбинацию из любых 2-х клавиш назначать любую 3-ю

Как вариант:

Код:
HotkeySet("{Й}", "_keys")

Func _keys()
   Send("{Ц}" & "{У}")
   Sleep(100)
EndFunc
 
Автор
M

mrbig

Новичок
Сообщения
5
Репутация
0
[Мышь, клавиатура] Re: На комбинацию из любых 2-х клавиш назначать любую 3-ю

а конкретно по моим вопросам (1) и 2)) можете дать готовые скрипты?
...я просто вообще 0 в этом и даже не понимаю куда вписать и как запустить то что вы пишете :stars:

как я понял готовых программ где эта ф-ия уже есть никто не знает? я скачал некий keyboard maniac но так и не смог понять, есть ли там желаемые мной ф-ии
-И также неясен вопрос, что в моём случае будет жрать больше памяти, запущенная прога типа keyboard maniac (или другая) или autoit?
 
Автор
M

mrbig

Новичок
Сообщения
5
Репутация
0
всё я переоформил тему, подробно описал требуемые ф-ии, просьба перенести тему в стол заказов :laugh:
 

export

Новичок
Сообщения
1
Репутация
0
[Мышь, клавиатура] Re: На комбинацию из любых 2-х клавиш назначать любую 3-ю (безграничный функцион

_ToBe_ [?]
HotkeySet("{Й}", "_keys")
Func _keys()
Send("{Ц}" & "{У}")
Sleep(100)
EndFunc
Почему это не работает? :( Как вообще скрипт создать нормальный?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
export
Или Sleep поставь, или бесконечный цикл сделай.
как-то так:
Код:
HotkeySet("{Й}", "_keys") ; при нажатии кнопки "Й" выполнится функция _keys и нажмётся "цу"
Sleep(10000) ; ждать 10 секунд нажатия кнопки / буквы "Й"
Func _keys()
   Send("{Ц}" & "{У}")
   Sleep(100)
EndFunc

Код:
HotkeySet("{Й}", "_keys") ; при нажатии кнопки "Й" выполнится функция _keys и нажмётся "цу"
; Ждать нажатия кнопки / буквы "Й" до завершения скрипта.
While 1
Sleep(10)
WEnd
Func _keys()
   Send("{Ц}" & "{У}")
   Sleep(100)
EndFunc
 
Верх