public int KeyUp(int vk_code) { switch (WindowsFormsApplication1.BaseData.SystemInfo.BindWindowsType) { case 1: //1是大漠2是AE { return(dm.KeyUp(vk_code)); } case 2: { return(dm.KeyUp(vk_code)); } default: return(0); } }
public static bool Init() { try { DM = new CDmSoft(); KeyInput = ((int vk, KeyFlag flag) => { switch (flag) { case KeyFlag.Down: DM.KeyDown(vk); break; case KeyFlag.Up: DM.KeyUp(vk); break; case KeyFlag.Press: DM.KeyPress(vk); break; } }); MouseInput = ((int x, int y, MouseFlag flag, int data) => { switch (flag) { case MouseFlag.MoveTo: DM.MoveTo(x, y); break; case MouseFlag.AddTo: DM.MoveR(x, y); break; case MouseFlag.Wheel: if (data > 0) { DM.WheelUp(); } else { DM.WheelDown(); } break; case MouseFlag.LeftDown: DM.LeftDown(); break; case MouseFlag.LeftUp: DM.LeftUp(); break; case MouseFlag.RightDown: DM.RightDown(); break; case MouseFlag.RightUp: DM.RightUp(); break; } }); } catch { KeyInput = KeyEvent.KeySend; MouseInput = KeyEvent.MouseSend; return(false); } return(true); }
public void 循环找图主进程() { i = 0; while (true) { Stopwatch 运行时间 = new Stopwatch(); 运行时间.Start(); foreach (String 图片 in 截图.需要点击的) { 查找图片点击(图片 + ".bmp"); } if (!查找图片点击(截图.人机对战)) { 查找图片点击(截图.模式确认); } //查找图片点击(截图.锁定英雄); if (查找图片(截图.回城技能, out 横坐标, out 纵坐标))//游戏中----回城技能截图改成了左上角图标 { My.Computer.MouseMoveToPixel(横坐标 + 1170 + 随机数.Next(0, 5) - 随机数.Next(0, 5), 纵坐标 + 650 + 随机数.Next(0, 5) - 随机数.Next(0, 5)); dm.KeyDown(65);//"a"键 Delay(20 + 随机数.Next(0, 20)); My.Computer.MouseLeftClick(); Delay(30 + 随机数.Next(0, 20)); dm.KeyUp(65); Delay(500 + 随机数.Next(0, 20)); dm.KeyPressChar("space"); My.Computer.MouseMoveToPixel(600 + 随机数.Next(0, 50) - 随机数.Next(0, 50), 300 + 随机数.Next(0, 50) - 随机数.Next(0, 50)); Delay(100 + 随机数.Next(100, 200)); //if (查找图片(截图.聊天框, out 横坐标, out 纵坐标)) //{ // dm.KeyPress(13); //} } else if (My.Computer.FindWindow("League of Legends (TM) Client").Width != 0) { //横坐标 = 1191; //纵坐标 = 629; this.Text = "第二种查找方式(固定的XY坐标而不是按查找图片来寻找)"; My.Computer.MouseMoveToPixel(1191 + 随机数.Next(0, 5) - 随机数.Next(0, 5), 629 + 随机数.Next(0, 5) - 随机数.Next(0, 5)); dm.KeyDown(65);//"a"键 Delay(20 + 随机数.Next(0, 20)); My.Computer.MouseLeftClick(); Delay(30 + 随机数.Next(0, 20)); dm.KeyUp(65); Delay(500 + 随机数.Next(0, 20)); My.Computer.MouseMoveToPixel(1191 + 随机数.Next(0, 5) - 随机数.Next(0, 5), 629 + 随机数.Next(0, 5) - 随机数.Next(0, 5)); dm.KeyDown(65);//"a"键 Delay(20 + 随机数.Next(0, 20)); My.Computer.MouseLeftClick(); Delay(30 + 随机数.Next(0, 20)); dm.KeyUp(65); Delay(500 + 随机数.Next(0, 20)); My.Computer.MouseMoveToPixel(600 + 随机数.Next(0, 50) - 随机数.Next(0, 50), 300 + 随机数.Next(0, 50) - 随机数.Next(0, 50)); Delay(100 + 随机数.Next(100, 200)); My.Computer.MouseMoveToPixel(600 + 随机数.Next(0, 50) - 随机数.Next(0, 50), 300 + 随机数.Next(0, 50) - 随机数.Next(0, 50)); Delay(100 + 随机数.Next(100, 200)); dm.KeyPress(13); Delay(200 + 随机数.Next(0, 50)); Delay(300 + 随机数.Next(0, 50)); dm.KeyPress(13); } if (查找图片(截图.再玩一次, out 横坐标, out 纵坐标)) { 第一次进游戏 = true; if (checkBox1.Checked) { this.Text = "停止状态"; 运行时间.Stop(); break; } else { Delay(50); 标移动左键单击(横坐标, 纵坐标); } } if (查找图片(截图.锁定视角, out 横坐标, out 纵坐标)) { Delay(50); dm.KeyPress(89);//Y键 } if (dm.FindWindow("RiotWindowClass", "") != 0) { dm.GetClientRect(dm.FindWindow("RiotWindowClass", ""), out object x1, out object y1, out object x2, out object y2); if ((int)x1 != 0 || (int)y1 != 0) { dm.MoveWindow(dm.FindWindow("RiotWindowClass", ""), 0, 0); } } if (i > (发送文本间隔时间 * 1000) && 查找图片(截图.回城技能, out 横坐标, out 纵坐标)) { //if (第一次进游戏 == true) //{ // 第一次进游戏 = false; //} //else //{ // 发送文本(); //} 发送文本(); i = 0; } //if (My.Computer.KeyBeingPressed(Keys.D) || 停止按钮) if (停止按钮) { this.Text = "停止状态"; 运行时间.Stop(); break; } 运行时间.Stop(); TimeSpan 时间间隔 = 运行时间.Elapsed; this.Text = (时间间隔.TotalMilliseconds / 1000.00).ToString() + "s"; i += 时间间隔.TotalMilliseconds; } }