Не припомню подобных жалоб. Какая версия постера?
Баг с движением мыши на рабочем столе - каким-то образом связан с командой
Emulator.DragAndDrop(instance.ActiveTab.Handle...)
1. Используется Windows 11
2. Код ниже применяется для решения капчи на подобии тик-тока(slider-captha)
3. Проверить на Windows 10 нету возможности.
4. Если кто-то из администрации, вдруг заинтересуется такой проблемой, то в теории, можно будет сложить пример шаблона и отправить в личку админам, но судя по тому, что мои попытки отправлять в личку баг + шаб для повтора - никакого результата не дают, думаю придется искать другой метод передвигания мыши.
Часть кода, которая используется. И произвольное движение мыши происходит тогда, когда бот запускает команду handle на передвижение слайдера.
he = instance.ActiveTab.FindElementById("slideBg");
var bmp = he.DrawAsBitmap(false);
int find = 100; // количество пикселей
for (int x = 100; x < bmp.Width-20; x++) {
for (int y = 30; y < bmp.Height-80; y++) {
if (bmp.GetPixel(x, y).R < 45 && bmp.GetPixel(x, y).G < 70 && bmp.GetPixel(x, y).B < 70) {
find++;
lxs.Add(x);
lys.Add(y);
}
}
}
int [] xs = lxs.ToArray();
int [] ys = lys.ToArray();
// БАГ в этом методе (ниже)
Emulator.DragAndDrop(instance.ActiveTab.Handle, he.DisplacementInTabWindow.X+55, he.DisplacementInTabWindow.Y+(int)ys.Average(), he.DisplacementInTabWindow.X+(int)xs.Average(), he.DisplacementInTabWindow.Y+(int)ys.Average());
Если вдруг использовать метод из
темы , то проблемы с самовольным движением мыши на рабочем столе - не появляется. Но при таком методе появляется другая проблема, так как окно капчи со слайдером находится на верхнем слое, метод поиска координат с помощью xpath - работает криво и открывая каждый раз капчу - получаем новые координаты... То ли это сам хпаз метод кривой, то ли сайты умеют ломать ботов при поиске через хпаз, не понятно, но факт в том, что код ниже, не вызывает проблем с мышью, а верхний код вызывает...)
instance.EmulationLevel = "Full"; //устанавливаем полную эмуляцию
instance.ActiveTab.DragDrop(left_move+28, top2_move+15, left_move+28, top2_move+15); //хватаем ползунок
instance.ActiveTab.FullEmulationMouseMove(left_move + minEven +22, top2_move + 17); //тащим на место тёмного пазла
System.Threading.Thread.Sleep(rnd.Next(500, 1000)); //небольшая рандомная пауза для эмуляции человеческого "прицеливания"
instance.ActiveTab.FullEmulationMouseClick("left", "click"); //отпускаем