rendered paste bodyusing 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);
}
}
}