Here is my UI click function which click from a given UI.
Code:
class UIClick
{
[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
public static void ClickUI(string name, int click = 1)
{
//var resaults = Engine.Current.ObjectManager.x984_UI.x0000_Controls.x10_Map[name].Dereference<UIControl>();
var addpointX = 0;
var addpointY = 0;
var Point = GetUIPos.GetUIPosition(name);
while (Point[0] == 0 && Point[1] == 0)
{
Point = GetUIPos.GetUIPosition(name);
Thread.Sleep(250);
}
var Point2 = UIRectAngle.GetUIRectAngle((int)Point[0], (int)Point[1], (int)Point[2], (int)Point[3]);
if (Point2[2] < 0)
{
//Console.WriteLine(Point2[2]);
Point2[2] = 0;
addpointX = 20;
}
if (Point2[3] < 0)
{
//Console.WriteLine(Point2[3]);
Point2[3] = 0;
addpointY = 20;
}
if (click == 0)
{
Cursor.Position = new Point(((int)Point2[0] + (int)Point2[2] / 2) + addpointX, ((int)Point2[1] + (int)Point2[3] / 2) + addpointY);
}
else
{
Cursor.Position = new Point(((int)Point2[0] + (int)Point2[2] / 2) + addpointX, ((int)Point2[1] + (int)Point2[3] / 2) + addpointY);
mouse_event((int)0x02 | 0x04, ((int)Point2[0] + (int)Point2[2] / 2) + addpointX, ((int)Point2[1] + (int)Point2[3] / 2) + addpointY, 0, 0);
}
}
}