using System; using System.IO; using System.Threading; using System.Diagnostics; using System.Runtime.InteropServices;
namespace XDF.GamePlugInCommon { /// <summary> /// API 的摘要说明。 /// </summary> public sealed class API { public static int WM_KEYDOWN = 0x0100; public static int WM_KEYUP = 0x0101; public static int WM_SYSKEYDOWN = 0x0104; public static int WM_SYSKEYUP = 0x0105;
public static int WM_MOUSEMOVE = 0x0200; public static int WM_LBUTTONDOWN = 0x0201; public static int WM_LBUTTONUP = 0x0202; public static int WM_LBUTTONDBLCLK = 0x0203; public static int WM_RBUTTONDOWN = 0x0204; public static int WM_RBUTTONUP = 0x0205; public static int WM_RBUTTONDBLCLK = 0x0206; public static int WM_USER = 0x0400;
public static int MK_LBUTTON = 0x0001; public static int MK_RBUTTON = 0x0002; public static int MK_SHIFT = 0x0004; public static int MK_CONTROL = 0x0008; public static int MK_MBUTTON = 0x0010;
public static int MK_XBUTTON1 = 0x0020; public static int MK_XBUTTON2 = 0x0040;
[DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd,int Msg,int wParam,int lParam);
//此处主要用来让窗口置于最前(SetWindowPos(this.Handle,-1,0,0,0,0,0x4000|0x0001|0x0002);) [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags );
/// <summary> /// /// </summary> /// <param name="processName"></param> /// <returns></returns> public static Process GetGameProcess(string processName) { Process pro = null; Process[] pros = Process.GetProcessesByName(processName); if(pros.Length > 0) { pro = pros[0]; } return pro; } } }
项目(应用程序) XDF.TantraPlugIn //ControlItem.cs using System; using System.IO; using System.Xml.Serialization;
namespace XDF.TantraPlugIn { /// <summary> /// ControlItem 的摘要说明。 /// </summary> [Serializable] public sealed class ControlItem { private string m_Name = ""; public string Name { get { return this.m_Name; } set { this.m_Name = value; } } private char m_KeyChar = 'a'; public char KeyChar { get { return this.m_KeyChar; } set { this.m_KeyChar = value; } } private int m_DelayTime = 100; public int DelayTime { get { return this.m_DelayTime; } set { this.m_DelayTime = value; } } public ControlItem() {
} } [Serializable] public sealed class ControlItemCollection : System.Collections.CollectionBase { public ControlItem this[int index] { get { return (ControlItem)List[index]; } set { List[index] = value; } } public ControlItemCollection() { } public int Add(ControlItem item) { return List.Add(item); } public void Remove(ControlItem item) { List.Remove(item); } } }
//TantraConfig.cs using System; using System.IO; using System.Xml.Serialization;
namespace XDF.TantraPlugIn { /// <summary> /// TantraConfig 的摘要说明。 /// </summary> [Serializable] public class TantraConfig { private ControlItemCollection m_KillControls = new ControlItemCollection(); public ControlItemCollection KillControls { get { return this.m_KillControls; } set { this.m_KillControls = value; } } private ControlItemCollection m_BloodControls = new ControlItemCollection(); public ControlItemCollection BloodControls { get { return this.m_BloodControls; } set { this.m_BloodControls = value; } }
private int m_BloodRate = 25;
public int BloodRate { get { return this.m_BloodRate; } set { this.m_BloodRate = value; } }
private string m_ProcessName = "HTLauncher";
public string ProcessName { get { return this.m_ProcessName; } set { this.m_ProcessName = value; } }
public TantraConfig() {
}
public bool Save(string file) { bool result = false; try { FileStream fs = new FileStream(file,FileMode.Create,FileAccess.Write); XmlSerializer xsl = new XmlSerializer(this.GetType()); xsl.Serialize(fs,this); fs.Close(); result = true; } catch { result = false; } return result; } public static TantraConfig LoadFromFile(string file) { TantraConfig config = null; try { FileStream fs = new FileStream(file,FileMode.Open,FileAccess.Read); XmlSerializer xsl = new XmlSerializer(typeof(TantraConfig)); config = (TantraConfig)xsl.Deserialize(fs); fs.Close(); } catch {
} return config; } } }
//Frmmain.cs using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading;