Бот для отслеживания чата в игре. C#
Я хочу отслеживать изменение чата в игре. Есть ли какие-нибудь готовые библеотеки для такого? Я придумал небольшой способ отслеживания чата. Программа создает каждые 15 секунд скриншот экрана. И проверяет на сколько текущий скриншот изменился побитово с другим. Если программа видит, что количество битов изменилось хотя бы на 10-15% то происходит нужная мне функция (допустим выключить игру,если кто-то что-то написал в чат). Но я не уверен хорошо ли так делать. Другая проблема у меня была это "Как удобно выделять область экрана для проверки". Т.е мы запускаем программу. На экране вылетает прямоугольник который можно двигать. Далее перетаскиваем этот прямоугольник на чат и там будут делаться скриншоты экрана. Но я не знаю как реализовать такой "Прямоугольник". Потому что вручную подставлять значения в конструктор класса Bitmap не очень удобно, а хочется просто навести рамку (прямоугольник) на чат и пускай он сам себе скриншотит.
Ответы (1 шт):
Для получения скриншота по области можно воспользоваться методом отсюда https://stackoverflow.com/a/5049138/11837368 :
using (Bitmap bmpScreenCapture = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height))
using (Graphics g = Graphics.FromImage(bmpScreenCapture))
{
g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
bmpScreenCapture.Size,
CopyPixelOperation.SourceCopy);
}
Чтобы устанавливать область, можете создать полупрозрачную форму и отслеживать события перемещения и ресайза, получая тем самым границы.