Я делаю ИИ и хочу, чтобы он функционировал как игрок. Я использую некоторый код, чтобы сделать щелчок мыши, и это работает. Затем я сделал код для щелчка мышью в случайных местах, но затем он перестал работать.
Я изменил
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
на
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
, но это не таккажется, что-то изменить, кроме места, где он нажал. Я также заставил его подождать 0,5 секунды между mouseDown и mouseUp, но он все еще не работал, когда я запустил rndPlay();
, когда я попытался сделать просто press1();
, это сработало.
public static void MoveTo(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x, y, 0, 0);
}
public static void LeftClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN, System.Windows.Forms.Control.MousePosition.X, System.Windows.Forms.Control.MousePosition.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, System.Windows.Forms.Control.MousePosition.X, System.Windows.Forms.Control.MousePosition.Y, 0, 0);
}
public static void LeftMouseClick(int x, int y)
{
MoveTo(x, y);
LeftClick();
}
public static void press1()
{
LeftMouseClick(28000, 25000);
last2Moves("1");
}
public static void press2()
{
LeftMouseClick(33000, 25000);
last2Moves("2");
}
//etc
public static void rndPlay()
{
for (int r = 0; moveSucces != true && r < 10000; r++)
{
Random rndP = new Random();
int rndPress = rndP.Next(1, 10);
if (rndPress == 1)
{
press1();
}
if (rndPress == 2)
{
press2();
}
//etc
}
}
Когда язапустить rndPlay();
Я вижу движение мыши, но, кажется, не щелкает. Есть ли другой способ сделать щелчок мыши в месте, которое будет работать лучше / быстрее?