using System; using System.Collections.Generic; using System.Text; namespace pindleNET2.Common { class Input { public static void SendPacket(int processID, byte[] packet) { D2Hooks.D2Sender sender = new D2Hooks.D2Sender(processID); sender.SendToGameServer(packet); } public static void SendText(string WindowName, string message) { StringBuilder sb = new StringBuilder(message); char[] charArray = new char[sb.Length]; sb.CopyTo(0, charArray, 0, sb.Length); foreach (char c in charArray) { SendKeyDown(WindowName, c); SendMessage(WindowName, Common.Win32.Message.WM_CHAR, c, (int)0x220001); SendKeyUp(WindowName, c); } //SendKey(WindowName, c, 15); } public static void SendKey(string WindowName, char c,int KeyDownDelay) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYDOWN, c, 0); System.Threading.Thread.Sleep(KeyDownDelay); Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYUP, c, 0); } public static void SendKey(string WindowName, Win32.KeyCodes KeyCode) { SendKey(WindowName, KeyCode, 15); } public static void SendKey(string WindowName, Win32.KeyCodes KeyCode, int KeyDownDelay) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYDOWN, (int)KeyCode, 0); System.Threading.Thread.Sleep(KeyDownDelay); Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYUP, (int)KeyCode, 0); } public static void SendKeyDown(string WindowName, Win32.KeyCodes KeyCode) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYDOWN, (int)KeyCode, 0); } public static void SendKeyUp(string WindowName, Win32.KeyCodes KeyCode) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYUP, (int)KeyCode, 0); } public static void SendKeyDown(string WindowName, char KeyCode) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYDOWN, (int)KeyCode, 0); } public static void SendKeyUp(string WindowName, char KeyCode) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_KEYUP, (int)KeyCode, 0); } public static void SendMessage(string WindowName, Win32.Message Message, int LParam, int RParam) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Message,LParam, RParam); } //todo sendkeydown //todo sendkeyup public static void MouseMove(string WindowName, int x, int y) { Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), (uint)Win32.Message.WM_MOUSEMOVE, 0, (y * 0x10000) + x); } public static void MouseDown(string WindowName, string Button, int x, int y) { MouseMove(WindowName, x, y); System.Threading.Thread.Sleep(100); uint _buttondown = 0, _buttonup = 0; switch (Button.ToLower()) { case "left": _buttondown = (uint)Win32.Message.WM_LBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_LBUTTONUP; break; case "right": _buttondown = (uint)Win32.Message.WM_RBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_RBUTTONUP; break; default: throw new ApplicationException("MouseClick(): Button value is not known"); } Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), _buttondown, 0, (y * 0x10000) + x); } public static void MouseUp(string WindowName, string Button, int x, int y) { MouseMove(WindowName, x, y); System.Threading.Thread.Sleep(100); uint _buttondown = 0, _buttonup = 0; switch (Button.ToLower()) { case "left": _buttondown = (uint)Win32.Message.WM_LBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_LBUTTONUP; break; case "right": _buttondown = (uint)Win32.Message.WM_RBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_RBUTTONUP; break; default: throw new ApplicationException("MouseClick(): Button value is not known"); } Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), _buttonup, 0, (y * 0x10000) + x); } public static void MouseClick(string WindowName, string Button, int x, int y, int MouseDownDelay) { MouseMove(WindowName, x, y); System.Threading.Thread.Sleep(100); //SendMessage(receiver.Handle, WM_LBUTTONDOWN, 0, (location.Y *0x10000) + location.X); //uint _button = 0 uint _buttondown = 0, _buttonup = 0; switch (Button.ToLower()) { case "left": _buttondown = (uint)Win32.Message.WM_LBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_LBUTTONUP; break; case "right": _buttondown = (uint)Win32.Message.WM_RBUTTONDOWN; _buttonup = (uint)Win32.Message.WM_RBUTTONUP; break; default: throw new ApplicationException("MouseClick(): Button value is not known"); } Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), _buttondown, 0, (y * 0x10000) + x); System.Threading.Thread.Sleep(MouseDownDelay); Win32.SendMessage(Win32.FindWindow("Diablo II", WindowName), _buttonup, 0, (y * 0x10000) + x); } } }