public void RunThread() { try { f = new Func(); f.SetDMPath(PicPath); Thread.Sleep(500); int pid = 0, handle = 0; if (this.txtPID.Text.Trim() != "") { pid = int.Parse(txtPID.Text.Trim()); } if (this.txtHandle.Text.Trim() != "") { handle = int.Parse(txtHandle.Text.Trim()); } f.BindDM(ClassName, pid, handle); string currentDT = f.GetCurrentDT(); if (currentDT == "") { throw new Exception("获取当前地图失败"); } string dtTo = this.Invoke(new GetControlText(delegate(Control c) { return c.Text; }), new object[] { this.cbxDT }).ToString().Trim(); string npc = this.Invoke(new GetControlText(delegate(Control c) { return c.Text; }), new object[] { this.cbxNPC }).ToString().Trim(); string strIndex = this.Invoke(new GetControlText(delegate(Control c) { return c.Text; }), new object[] { this.cbxSDIndex }).ToString(); if (currentDT != dtTo) { f.WayfindingEx(currentDT, dtTo, 0.9); } Thread.Sleep(500); f.CloseSubWindows(); if (npc != "") { Thread.Sleep(500); string xl = npc.Replace(PicPath, "").Replace(dtTo,"自动寻路").Replace("NPC", dtTo); f.Wayfinding(xl, npc, 0.9, 2); if (strIndex != "") { int sdIndex = int.Parse(strIndex); int x = 0, y = 0; f.GetPicCenter(npc, 0.9, 2, 0, out x, out y); y = y + 81 + 22 * (sdIndex - 1);//NPC名字坐标和第一个帮会列表距离88像素 Thread.Sleep(500); f.dm.MoveTo(x, y); Thread.Sleep(1000); f.dm.LeftClick(); Thread.Sleep(10000); f.UnBindDM(); this.Invoke(DelegateSetControl, new object[] { gbSetting, true }); this.Invoke(DelegateSetControl, new object[] { gbStart, true }); } } } catch (Exception ex) { this.Invoke(delegateShowMsg, new object[] { ex.Message }); if (f != null) { f.UnBindDM(); this.Invoke(DelegateSetControl, new object[] { gbSetting, true }); this.Invoke(DelegateSetControl, new object[] { gbStart, true }); } } }