PDA

View Full Version : شبیه سازی کلیک



madrid-poorya
پنج شنبه 16 بهمن 1393, 19:05 عصر
با سلام به اساتید محترم
من دارم یه برنامه مینویسم که توی یه قسمتش باید وقتی موس روی یه برنامه دیگه میره هر 1 دقیقه روی صفحه ش کلیک بشه
نمیدونم تونستم منظورم رو برسونم یا نه
ممنون

aminmousavi
پنج شنبه 16 بهمن 1393, 20:19 عصر
سلام دوست عزیز .
یعنی میخواین یک ربات بنویسین که روی یک مختصات دیگه از صفحه (که تو اون مختصات یک برنامه دیگه هست) کلیک کنه اتوماتیک ؟

madrid-poorya
جمعه 17 بهمن 1393, 02:56 صبح
دقیقا.برنامه تا اجرا میشه مثلا وسط صفحه حالا هر برنامه ای بازه رو مثلا هر چند ثانیه کلیک کنه

aminmousavi
جمعه 17 بهمن 1393, 04:31 صبح
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);


private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;


[Flags]
public enum MouseEventFlags
{
LeftDown = 0x00000002,
LeftUp = 0x00000004,
MiddleDown = 0x00000020,
MiddleUp = 0x00000040,
Move = 0x00000001,
Absolute = 0x00008000,
RightDown = 0x00000008,
RightUp = 0x00000010
}


[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetCursorPos(int X, int Y);


[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool GetCursorPos(out MousePoint lpMousePoint);


[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);



public static void SetCursorPosition(int X, int Y)
{
SetCursorPos(X, Y);
}



public static void MouseEvent(MouseEventFlags value)
{
MousePoint position = GetCursorPosition();
mouse_event
((int)value,
position.X,
position.Y,
0,
0)
;
}


[StructLayout(LayoutKind.Sequential)]
public struct MousePoint
{
public int X;
public int Y;


public MousePoint(int x, int y)
{
X = x;
Y = y;
}
}


روش کار به این شکل هست که اول موس را با استفاده از متد SetCursorPosition به نقطه مورد نظر میبرین بعدش با متد MouseEvent کلیک میکنین .

aminmousavi
جمعه 17 بهمن 1393, 04:31 صبح
در ضمن using System.Runtime.InteropServices; فراموش نشه

madrid-poorya
جمعه 17 بهمن 1393, 10:24 صبح
عالی بود.دستتون درد نکنه.واقعا ممنون

tanha70
جمعه 17 بهمن 1393, 19:40 عصر
سلام


برنامه ای داریم که نیاز داریم تا در نقاطی که مختصات آن را داریم کلیک شود بدون حرکت دادن موس.
دوستان لطفا در این زمینه راهنمایی بفرمایید.