public void locate(string dest, bool auto_trans = false) { setState("寻找坐标中"); var p = findImage("自动寻路|自动寻路2"); if (p.X <= 0) { clear(); } while (p.X <= 0) { dm.KeyPress(Keys.M); Thread.Sleep(1000); p = findImage("自动寻路|自动寻路2"); } setState("寻路中"); var arr = dest.Split(new string[] { ",", "," }, StringSplitOptions.None); dblclick(p.X + 120, p.Y - 8); //await Task.Delay(30); //await send_chars(new char[] { (char)8, (char)8, (char)8 }); //await Task.Delay(30); dm.SendString(hwnd, arr[0]); Thread.Sleep(60); //await Task.Delay(100); dblclick(p.X + 120, p.Y + 26); //await Task.Delay(30); //await send_chars(new char[] { (char)8, (char)8, (char)8 }); //await Task.Delay(30); dm.SendString(hwnd, arr[1]); //send_normal_string(arr[1]); Thread.Sleep(60); click(p.X, p.Y); if (auto_trans) { var x1 = p.X - 450; var y1 = p.Y - 450; var x2 = p.X + 200; var y2 = p.Y; Thread.Sleep(1000); p = findImage("flag", x1, y1, x2, y2); click(p.X + 1, p.Y + 17); Thread.Sleep(1000); p = findImage("cloud", x1, y1, x2, y2); click(p.X + 4, p.Y + 4); } dm.KeyPress(Keys.Escape); Thread.Sleep(2000); waitCompleteLocate(); setState("寻路完成"); }
private async void button4_Click(object sender, EventArgs e) { for (int i = 0; i < 3; i++) { dm.KeyPress(Keys.Escape); await Task.Delay(20); } var px = getPoint(tb_cood.Text); dm.KeyPress(Keys.M); await Task.Delay(1000); var p = dm.FindPic(0, 0, 2000, 2000, "resources/自动寻路.bmp|resources/自动寻路2.bmp"); dm.MoveTo(p.X + 120, p.Y - 8); dm.LeftDoubleClick(); dm.SendString(hwnd, px.X + ""); await Task.Delay(60); dm.MoveTo(p.X + 120, p.Y + 26); dm.LeftDoubleClick(); dm.SendString(hwnd, px.Y + ""); await Task.Delay(60); dm.MoveTo(p.X, p.Y); dm.LeftClick(); if (chb_direct_fly.Checked) { var x1 = p.X - 450; var y1 = p.Y - 450; var x2 = p.X + 200; var y2 = p.Y; await Task.Delay(1000); p = dm.FindPic(x1, y1, x2, y2, "resources/flag.bmp"); dm.MoveTo(p.X + 1, p.Y + 17); dm.LeftClick(); await Task.Delay(1000); p = dm.FindPic(x1, y1, x2, y2, "resources/cloud.bmp"); dm.MoveTo(p.X + 4, p.Y + 4); dm.LeftClick(); } }