Как реализовать отображение WinForms поверх игры в полноэкранном режиме?

Мне нужно реализовать оверлей (например, как в Дискорде) через WinForms. Игра - GTA:SA. Возможно ли это? Если да, то как можно это реализовать? Буду очень благодарен за помощь.

TopMost не предлагать ( с GTA:SA не работает.Игра просто сворачивается )


Ответы (1 шт):

Автор решения: Jagailo

При полном экране через WinForms - никак. У приложения монополия над экраном, но можно влезть в команды отрисовки приложения. Если посмотреть на такие приложения как MSI Afterburner, AIDA64, YAKD и тп, то они используют shared memory программы RTSS, которая как раз-таки и отрисовывает переданные ей данные прямо в поверх приложения. Есть библиотека на C++, её можно использовать в .NET приложении создав свой OSD и выводить уже вашу информацию поверх экрана. А делать интерактивный оверлей куда сложнее.

Есть ещё Overlay.NET пакет, но он предлагает вам самим с нуля рисовать оверлей примитивами.

→ Ссылка