Перейти к содержимому
Для публикации в этом разделе необходимо провести 50 боёв.
DieLuft

Замена не заменяемых клавиш

В этой теме 19 комментариев

Рекомендуемые комментарии

124
[-DC-]
Участник
333 публикации
7 519 боёв

Можно ли заменять клавиши сторонним своим ПО(написанным на С/С++), т.к. замены сочетание клавиш Ctrl+X и Shift+X не предусмотрено  например на RCtrl+RWin и RShift+RWin

Я играю/могу играть только на правой части клавиатуры, почему могу отдельно объяснить.

Обратился в ТПП получил общий.
P.S. Модификаций клиента игры и т.д. и т.п. не нужно - выполняется на уровне ядра драйверов OS Windows.

 

Изменено пользователем DieLuft
правка
  • Плюс 4
  • Скучно 1

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 16:24:08 пользователь DieLuft сказал:

Можно ли заменять клавиши сторонним своим ПО(написанным на С/С++), т.к. замены сочетание клавиш Ctrl+X и Shift+X не предусмотрено  например на RCtrl+RWin и RShift+RWin

Я играю/могу играть только на правой части клавиатуры, почему могу отдельно объяснить.

Обратился в ТПП получил общий.
P.S. Модификаций клиента игры и т.д. и т.п. не нужно - выполняется на уровне ядра драйверов OS Windows.

 

Это вопрос: будет ли это программа относится к запрещенным модификациям или нарушать лицензионное соглашение? Тоже бы хотелось узнать. Я лично думаю, нарушений не будет. Вы же будете работать с ОС (WinApi или еще как, не важно), глобально перехватывать сочетания и подменять их. Если я правильно понял. WoWS, это по идее никак не затрагивает. Формально.

Изменено пользователем electroKOHb
  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
Участник
4 408 публикаций
11 578 боёв

Вообще не вижу смысла в наличии "несменяемых" клавишах.

Нужно сделать так,чтобы любую клавишу можно было переназначить по своему вкусу и выбору!

  • Плюс 12
  • Круто 1

Рассказать о публикации


Ссылка на публикацию
124
[-DC-]
Участник
333 публикации
7 519 боёв
В 04.06.2022 в 18:13:06 пользователь X_P_I0_H сказал:

Вообще не вижу смысла в наличии "несменяемых" клавишах.

Абсолютно согласен и их всего три Ctrl+X , Shift+X и С хотя быть может и больше.
Ну, а делать универсальную программу с глобальным ремапингом клавиш мне лениво, но можно.
Спасибо ответившим. 

  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 08:03:48 пользователь DieLuft сказал:

Абсолютно согласен и их всего три Ctrl+X , Shift+X и С хотя быть может и больше.
Ну, а делать универсальную программу с глобальным ремапингом клавиш мне лениво, но можно.
Спасибо ответившим. 

Нужно что бы кто то из разработчиков ответил. Это, конечно мои домыслы, но вдруг проводится проверка на ботоводство. Т.е. идет анализ прерываний устройств ввода и скан-кодов клавиатуры в частности. Ну типа бот "нажимает" клавиши программно, а какая то служба проверяет, были ли нажаты кнопочки "физически". Ну типа бот не может нажимать кнопочки и двигать мышой. Я бы с ботоводами именно так и боролся. И вдруг, идет конкретная проверка сканов Ctrl-X и несовпадение с программно нажатым RCtrl+RWin вызовет какой нибудь бан акка за ботовотсво. Это так, мысли вслух. Ну, мало ли... я хз как там устроено )))
P.S. в принципе достаточно службы, которая отлавливала бы событие - нажатие RCtrl+RWin и в ответ программно "нажимала" Ctrl-X. Ремаппить сочетания не нужно.

Изменено пользователем electroKOHb

Рассказать о публикации


Ссылка на публикацию
Участник
1 445 публикаций
Сегодня в 08:03:48 пользователь DieLuft сказал:

Абсолютно согласен и их всего три Ctrl+X , Shift+X и С хотя быть может и больше.

А "C" почему в этом списке находится? За что эта кнопка отвечает и почему не переназначается? Просто у меня на ней один из расходников повешен, вроде можно ее менять.

Рассказать о публикации


Ссылка на публикацию
124
[-DC-]
Участник
333 публикации
7 519 боёв
Сегодня в 11:10:35 пользователь Babushka_Pokemona сказал:

А "C" почему в этом списке находится?

Это переключение вида, я не уверен что она "зашита" в игру - надо проверять.

Сегодня в 08:18:54 пользователь electroKOHb сказал:

P.S. в принципе достаточно службы, которая отлавливала бы событие - нажатие RCtrl+RWin и в ответ программно "нажимала" Ctrl-X. Ремаппить сочетания не нужно.

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

Рассказать о публикации


Ссылка на публикацию
Участник
1 445 публикаций
Сегодня в 11:57:19 пользователь DieLuft сказал:

Это переключение вида, я не уверен что она "зашита" в игру - надо проверять.

У меня на "F" переназначена.

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 11:57:19 пользователь DieLuft сказал:

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

Так остановить проще простого. Пусть программа будет отслеживать процесс WoWS и "самовыпиливаться" при выключении процесса. На плюсах что угодно можно накатать )))
 

Изменено пользователем electroKOHb
  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
124
[-DC-]
Участник
333 публикации
7 519 боёв
Сегодня в 12:49:48 пользователь electroKOHb сказал:

На плюсах что угодно можно накатать )))

Ну не обязательно С++, есть спец. языки для этого дела.

Приблизительный алгоритм.

Если найден процесс wgc.exe [32-bit mode] запуск и засыпание(выполнятся один раз) процесса за сеанс.
Если окно World of Warships активно, то процесс просыпается и работает.

Если окно World of Warships неактивно, то процесс засыпает.

В общем есть куча вариантов))).

  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 15:58:48 пользователь DieLuft сказал:

Ну не обязательно С++, есть спец. языки для этого дела.

Приблизительный алгоритм.

Если найден процесс wgc.exe [32-bit mode] запуск и засыпание(выполнятся один раз) процесса за сеанс.
Если окно World of Warships активно, то процесс просыпается и работает.

Если окно World of Warships неактивно, то процесс засыпает.

В общем есть куча вариантов))).

Вы написали, что будете использовать С/C++. А так да. Можно много на чем написать такую замену и разными способами

Изменено пользователем electroKOHb

Рассказать о публикации


Ссылка на публикацию
Участник
652 публикации
Сегодня в 01:03:48 пользователь DieLuft сказал:

Абсолютно согласен и их всего три Ctrl+X , Shift+X и С хотя быть может и больше.
Ну, а делать универсальную программу с глобальным ремапингом клавиш мне лениво, но можно.
Спасибо ответившим. 

А почему не использовать стандартные (почти) средства? Тот же  Keyboard manager из PowerToys on микрософта ? Там не всё ремапнуть можно, Ctrl-Win не даёт, но я только что попробовал [Ctlr .] и [Ctrl /] - мапятся нормально (можно и отдельные клавиши на комбинации делать). 

Там же можно указать, что этот мапинг работает только в кораблях. Ну или выключать PowerToys после игры.

 

Скрытый текст

image.thumb.png.b3d3b8b70bb7d21ba1269f7cc84f5978.png

 

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 20:08:53 пользователь le_pin сказал:

А почему не использовать стандартные (почти) средства? Тот же  Keyboard manager из PowerToys on микрософта ? Там не всё ремапнуть можно, Ctrl-Win не даёт, но я только что попробовал [Ctlr .] и [Ctrl /] - мапятся нормально (можно и отдельные клавиши на комбинации делать). 

Там же можно указать, что этот мапинг работает только в кораблях. Ну или выключать PowerToys после игры.

 

  Показать содержимое

image.thumb.png.b3d3b8b70bb7d21ba1269f7cc84f5978.png

 

Мы не ищем легких путей!!!

  • Ха-Ха 1

Рассказать о публикации


Ссылка на публикацию
Участник
1 414 публикации
7 403 боя
В 05.06.2022 в 08:18:54 пользователь electroKOHb сказал:

Нужно что бы кто то из разработчиков ответил. Это, конечно мои домыслы, но вдруг проводится проверка на ботоводство. Т.е. идет анализ прерываний устройств ввода и скан-кодов клавиатуры в частности. Ну типа бот "нажимает" клавиши программно, а какая то служба проверяет, были ли нажаты кнопочки "физически". Ну типа бот не может нажимать кнопочки и двигать мышой. Я бы с ботоводами именно так и боролся. И вдруг, идет конкретная проверка сканов Ctrl-X и несовпадение с программно нажатым RCtrl+RWin вызовет какой нибудь бан акка за ботовотсво. Это так, мысли вслух. Ну, мало ли... я хз как там устроено )))
P.S. в принципе достаточно службы, которая отлавливала бы событие - нажатие RCtrl+RWin и в ответ программно "нажимала" Ctrl-X. Ремаппить сочетания не нужно.

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

  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 13:06:35 пользователь Ar_Ad сказал:

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

Да, это так. Я может не совсем так написал, что имею ввиду. Не совсем я системщик. У меня была мысль, что можно отследить так: любое подключенное устройство ввода при его использовании, будет посылать в порт (USB или какой другой) пакеты данных. И если во время боя на порты ничего не поступало от устройств ввода, то можно заподозрить на ботоводство. Как то так )))

Рассказать о публикации


Ссылка на публикацию
Участник
1 414 публикации
7 403 боя
Сегодня в 13:31:42 пользователь electroKOHb сказал:

Да, это так. Я может не совсем так написал, что имею ввиду. Не совсем я системщик. У меня была мысль, что можно отследить так: любое подключенное устройство ввода при его использовании, будет посылать в порт (USB или какой другой) пакеты данных. И если во время боя на порты ничего не поступало от устройств ввода, то можно заподозрить на ботоводство. Как то так )))

Я понял это, но дело в том, что невозможно заставить систему достоверно "понимать", что к ней подключено. Точнее с точки зрения робототехники и программирования ИИ можно конечно, но у нас не тот случай :) Это примерно на уровне, как если вам закрыть глаза, и вложить острый перец в рот. Если вы этого не знаете, вы не поймете происходящего, так как ваши рецепторы (не вкусовые) будут реагировать на капсаицин, а он взаимодействует с рецепторами, реагирующими на температуру. Так и получается, что "обжигает", но не горячий.

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

Мне сложно представить как такое отследить на расстоянии и без доступа к ПК. Считать задержки? Ну, кто-то пытается, но если взять там геймеров на РТС, занятие бесполезное, так как там скорости страшные. Да и задержка-параметр настраиваемый, обмануть можно.

Считать вольтаж с нажатия?  Не знаю даже, в рамках материнской платы это очень мало, в рамках USB вывода ОК, но данные можно подделать, хотя на много проще конечно создать виртуальный ЮСБ порт и с него данные кидать. Да и вообще-сама инфа о состоянии системы такая себе штука, ОСь может и не дать прав на определенные действия.

Рассказать о публикации


Ссылка на публикацию
127
[CREBS]
Участник
171 публикация
4 364 боя
Сегодня в 17:39:45 пользователь Ar_Ad сказал:

Я понял это, но дело в том, что невозможно заставить систему достоверно "понимать", что к ней подключено.

Ну я не системщик, занимаюсь в основном программированием ПЛК и если сигнал есть, то он должен и может быть обработан ))) Просто, как я понимаю, запускается программа-бот, а человек в это время "идет спать". Т.е. данные на USB-шину в это время не поступают. Что можно отследить не занимаясь перехватом и анализом самих пакетов данных (скорее всего это уже будет нарушением). Просто в ОС Линукс есть совершенно легальные и работающие программы, которые определяют тип и прочие характеристики подключенных USB-устройств (ну в принципе это и в Win есть). Ну и программы "прослушивания" портов тоже имеются. Сигнал попадающий в порт, лишь потом обрабатывается драйвером и при необходимости эмулируется. Но, достаточно проверить наличие самих сигналов на портах, что бы определить, пользовался ли человек какими либо USB-устройствами (как правило у всех устройств, кроме "самоделок" есть: VID (идентификатор поставщика),  PID (идентификатор продукта), модель и т.п. ). И не анализировать и логировать данные, а логировать наличие трафика и состояние портов во время игры. Т.е. как бы человек играет, но в это время подключенные USB-устройства "молчат", никаких данных с портов не идет, а значит вероятно это программа-бот "играет". Еще раз скажу, что я не системный программист. Возможно, что то не так понимаю ))) 

Изменено пользователем electroKOHb

Рассказать о публикации


Ссылка на публикацию
124
[-DC-]
Участник
333 публикации
7 519 боёв
Сегодня в 09:31:21 пользователь MedvedevTD сказал:

Да, заменить сочетание клавиш можно.

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


Считаю что вопрос по данной теме исчерпан и её можно закрывать.

Изменено пользователем DieLuft
  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
16 810
Разработчик
6 952 публикации
8 182 боя

закрыто ППА

Рассказать о публикации


Ссылка на публикацию
Гость
Эта тема закрыта для публикации новых ответов.

×