Игры Невидимый курсор в windows

daymonday

Зарегистрированный
Сообщения
3
Реакции
0
Здравствуйте.
Думаю беседка пожалуй единственное место где я могу задать свой говновопрос дабы не, извините, гадить на форуме. И ещё я засунул косвенно относящиеся к вопросу материалы под спойлер, возможно это как-то пригодится.

Суть проблемы
При подключении к удалённому пк (хост) с помощью Parsec эмулируется клавиатура и мышь. К сожалению некоторые игровые античиты (например vanguard) блокируют эмуляцию переферии и принимают только raw ввод. На данный момент они не блокируют проброс usb портов, поэтому я поднял vlan через softether и с помощью тулзы usb over network пробросил свою клавиатуру и мышь на хост, что дало мне возможность обойти ограничения античитов. При подключении таким образом возникает проблема с курсором мыши - он пропадает/становится невидимым на хосте, что, согласитесь, проблематично. Обновление драйверов или установка фирменного по мыши не меняют ситуации.

Зачем нужен удалённый пк, parsec...?
Разумеется обычному человеку не придёт в голову заниматься подобной ерундой, если не сказать иначе. Дело в том, что у меня в квартире/доме есть проблема с инпут лагом из-за чего играть в шутеры не представляется возможным и единственный известный на данный момент вариант полностью избавиться от проблемы - переезд в другую квартиру/дом. Речь не об input lag, что переводится также как и пишется, проблема гораздо сложнее и комплекснее, при этом почему-то в комьюнити её прозвали именно так, но я не хотел бы углубляться в этот вопрос. Просто поверьте на слово, что играть в шутеры с данной проблемой невозможно. А при определённых условиях - вообще пользоваться пк.

В случае c удалённым пк и Parsec я экспериментирую с поиском решения проблемы. Ранее вариантом играть удалённо был только облачный гейминг, который предоставляет 60Hz или в лучшем случае 120Hz потоковый стриминг. Всё это подходит для игроков, которые не играют в шутеры, потому что им не важна частота обновления экрана (хотя мне противно даже на рабочем столе видеть менее 144Hz). Для игры в шутеры это не годится.

Про Parsec я знал ещё в 20 году, но на тот момент они ещё не идеально допилили свой софт, поэтому я просто иногда читал их анонсы. И вот спустя время стриминг с высоким битрейтом около 70мбит/с в 1080p@240Hz работает шедеврально, по моим замерам задержки существенно сократились и теперь их можно снизить до ~10мс! Конечно при наличии видеокарты 20/30 серии и пинга до хоста ~5мс, что в моём случае вполне реально и осуществимо, благо рядом есть отличные дц. На данный момент я проверил несколько игр и всё работает отлично. Для этого я арендовывал выделенный сервер с видеокартой в стойке. Тестировать конечно было жутко неудобно, но об этом ниже

Что было предпринято
Поскольку античиты блокируют эмуляцию, они легко могут заблокировать любые варианты отрисовки курсора мыши программно, особенно если речь идёт о полноэкранном приложении directx. Поэтому самый простой и безопасный вариант обнаружить курсор нашёл только один - использовать встроенную функцию windows mouse sonar. Разумеется сама реализация выглядит куцо, а использовать предлагаемую кнопку CTRL для активации этой функции попутно находясь в игре крайне неудобно. Пытаясь найти варианты замены отображения эффекта или смены кнопки активации нашёл только расположение в реестре данной функции. Дальнейшие поиски по ключевым названиям ничего не дали.
Из готовых программ нашёл SpotOnTheMouse которая отрисовывает облась под курсором и имеет настройки биндов, но после тестов выяснил, что с несколькими играми программа не работает. Как на неё реагируют античиты информация пока не полная, нужно больше тестов.
Также я пробовал отрисовать курсор самостоятельно. Хоть попытки куцые и недопиленные, они более-менее работают в окне без рамок, например простейшая реализация на python и c++:
Python:
import win32gui, win32ui
from win32api import GetSystemMetrics

dc = win32gui.GetDC(0)
dcObj = win32ui.CreateDCFromHandle(dc)
hwnd = win32gui.WindowFromPoint((0,0))
monitor = (0, 0, GetSystemMetrics(0), GetSystemMetrics(1))

while True:
    m = win32gui.GetCursorPos()
    dcObj.Rectangle((m[0], m[1], m[0]+10, m[1]+10))
    win32gui.InvalidateRect(hwnd, monitor, True)
C++:
int main()
    {
    POINT p;
    while (true)
    {
        if (GetCursorPos(&p))
        {
            HDC dc = GetDC(GetDesktopWindow());

            TextOutA(dc, p.x, p.y, ".", 1);
            ReleaseDC(GetDesktopWindow(), dc);
        }
    }
}

По итогу хотелось бы знать существует ли вариант поставить свою кнопку/комбинацию активации функции сонара? Или вообще видоизменить эффект функции? Всё же реализация средствами windows самая безопасная как мне кажется, но я даже не знаю с чего начать. Или может быть есть какой-то другой простой и безопасный способ избавиться от проблемы с исчезающим курсором?
 

Gideon Vi

Мудрец
Сообщения
163
Реакции
566
пока что мне просто интересно... есть средства снимать выделенный с игровой картой, вероятно есть возможность собрать такой дома?
Значит проблема не в железе, а в провайдере. Есть хостинг, пинг через который устраивает даже с применением прослойки
Так почему не поднять на хостинге впн и играть в нейтив режиме?
 

f13nd

Мудрец
Сообщения
98
Реакции
385
и с помощью тулзы usb over network пробросил свою клавиатуру и мышь на хост, что дало мне возможность обойти ограничения античитов
Это странно, потому что данная тулза толком не умеет маскироваться: зарегистрированные ею устройства не являются дочерними 'USB\ROOT_HUB' (или 'USB3\ROOT_HUB' или 'AMDUSB30\ROOT_HUB30' и прочего), вроде в 'SYSTEM/' регистриует. Это легко выкупается. Virtualhere умеет прятаться лучше (хотя тоже не идеально). Возможно причина глюков с курсором как раз связана с кривой эмуляцией.
 
Последнее редактирование:

daymonday

Зарегистрированный
Сообщения
3
Реакции
0
@Gideon Vi, У меня собран такой дома, даже можно сказать два. Один - мощный хост, планирую отвезти в дц и арендовать под него нужное кол-во юнитов, второй, послабее, как клиент будет коннектиться к хосту из дома. Я аредовывал виртаульные, смотрел через looking glass - пинг везде в среднем 5мс до дц который мне нужен. Вместе с кодированием/декодированием потока выходит как раз около 10мс.
Проблем с провайдером нет. Я не хочу углубляться в природу этой проблемы, поскольку до сих пор не найдена причина. Есть предположения, достаточно много, как и людей которые столкнулись с этим и предпринимают попытки разобраться. Я тоже убил на это много времени, денег и сил (и продолжаю это делать). Но сейчас, возможно, появилась реальная альтернатива переезду, поэтому хочу хотя бы попытаться разробраться в этом вопросе. Потенциально это поможет не только мне, как минимум я хочу в это верить.

@f13nd, Да их достаточно много по схожему функционалу, есть даже такие как например flexihub, которому вообще локалка не нужна и он сам всё делает. До кучи можно какой-нибудь Digi AnywhereUSB докупить под этот дело или через microtek попробовать бахнуть. Вы смотрите именно со стороны приватности и надёжности, но штука в том что по моим текущим тестам особой разницы между ними нет. Во всяком случае не видел ни одного упоминания о блокировке за эти программы, но разумеется всё возможно :]
 

f13nd

Мудрец
Сообщения
98
Реакции
385
Вы смотрите именно со стороны приватности и надёжности, но штука в том что по моим текущим тестам особой разницы между ними нет
Еще б разницы с физической клавомышью не было, тогда бы и курсор наверное не пропадал.
 

savinnetsec

Новичок
Сообщения
71
Реакции
6
Автор. а что за проблема такая? Спутниковую тарелку по известному видео на ютубе можно переделать в приёмник 4G и таки навести прямо на базовую станцию. Можно ещё с дополнительным усилением поиграть.
 

savinnetsec

Новичок
Сообщения
71
Реакции
6
У меня мозг закипел. И так по порядку: я не понимаю, как у тебя есть лаг в играх из-за плохого интернета, но не ту лага при видеотрансляции игры через тот же интернет?

Этот лаг у тебя только в онлайн играх или вообще всех играх? Это может быть неудачный разгон антивиря. перегрев проца/видика, кривая оператива с большими задержками. Прикрепи отчёт AIDA64 Своего компа.

Даже иногда кривая сетевая карта или её драйвер. Как у тебя реализовано подключение к интернету? по проводным/беспроводным сетям?

Решение может быть проще и красивее того. которое ты ищешь, н-р реально 4G Модем мегафона на крышу. и самодельная антенна -усилитель, направленная на базовую станцию. Спутниковый интернет.

Искренне хочу разобраться в ситуации и помочь по мере своих возможностей.

P/S можно попробовать купить сетевую карту Intel в слот PCI -E в тч серверную, потому что встроенные в материнку иногда очень кривые. и скажи по какой технологии тебе проводит интернет провайдер, иногда как решение несколько модемов разных провайдеров к одному пк и переключаться между ними в зависимости от пинга и скорости в данный момент
 

daymonday

Зарегистрированный
Сообщения
3
Реакции
0
@savinnetsec, Привет. Спасибо за проявленный интерес, но всё что ты написал уже давно тестировалось и ничто из этого не является решением. Как я написал в шапке, проблема легко гуглится по ключевым словам "input lag", где множество тем на различных форумах и языках повествуют о проблемах плохой регистрации урона, задержках и рассинхронах, проблемах "плавающей" мыши и монитора. У меня лично нет проблем с плавающей переферией, только проблема которая выглядит как интернет, но по сути своей таковой не является. Всё уже тестировалось, анализировались дампы различные через снифферы и т.п. , куча тестов утилитами и специальным софтом и никаких проблем именно по всем показателям сети попросту нет. Разумеется тестировались и алтернативные базовки, разные типы подключения, в том числе и напрямую от дц или маршрутного узла. И конечно тестировались разные конфигурации пк, я сам поменял с десяток машин и это ни коим образом не связано с железом или ос. Сейчас основные две теории возникновения проблемы: помехи RFI/EMI и электричество. Собственно единственный вариант - переезд... был, пока я не решил проверить удалённый гейминг, тестирование которого я уже провожу в течение почти недели и пока мне всё нравится. Кроме курсора, который приходится использовать через SpotOnTheMouse, но в целом не критично, благо необходимо это лишь в паре игр.

P.S. Уведомления с форуме приходят в спам, не уверен что проблема у меня
 

savinnetsec

Новичок
Сообщения
71
Реакции
6
@savinnetsec, Привет. Спасибо за проявленный интерес, но всё что ты написал уже давно тестировалось и ничто из этого не является решением. Как я написал в шапке, проблема легко гуглится по ключевым словам "input lag", где множество тем на различных форумах и языках повествуют о проблемах плохой регистрации урона, задержках и рассинхронах, проблемах "плавающей" мыши и монитора. У меня лично нет проблем с плавающей переферией, только проблема которая выглядит как интернет, но по сути своей таковой не является. Всё уже тестировалось, анализировались дампы различные через снифферы и т.п. , куча тестов утилитами и специальным софтом и никаких проблем именно по всем показателям сети попросту нет. Разумеется тестировались и алтернативные базовки, разные типы подключения, в том числе и напрямую от дц или маршрутного узла. И конечно тестировались разные конфигурации пк, я сам поменял с десяток машин и это ни коим образом не связано с железом или ос. Сейчас основные две теории возникновения проблемы: помехи RFI/EMI и электричество. Собственно единственный вариант - переезд... был, пока я не решил проверить удалённый гейминг, тестирование которого я уже провожу в течение почти недели и пока мне всё нравится. Кроме курсора, который приходится использовать через SpotOnTheMouse, но в целом не критично, благо необходимо это лишь в паре игр.

P.S. Уведомления с форуме приходят в спам, не уверен что проблема у меня
как раз повод перебраться в столицу и мощнейшая мотивация. Некоторые проблемы требуют решения, которое-н-р в своё время предложил Александр Македонский. просто разрубив узел
 
Верх Низ