-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathIMouseSimulator.cs
125 lines (105 loc) · 5.52 KB
/
IMouseSimulator.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using System;
namespace XPloit.Windows.Api
{
/// <summary>
/// The service contract for a mouse simulator for the Windows platform.
/// </summary>
public interface IMouseSimulator
{
/// <summary>
/// Gets the <see cref="IKeyboardSimulator"/> instance for simulating Keyboard input.
/// </summary>
/// <value>The <see cref="IKeyboardSimulator"/> instance.</value>
IKeyboardSimulator Keyboard { get; }
/// <summary>
/// Simulates mouse movement by the specified distance measured as a delta from the current mouse location in pixels.
/// </summary>
/// <param name="pixelDeltaX">The distance in pixels to move the mouse horizontally.</param>
/// <param name="pixelDeltaY">The distance in pixels to move the mouse vertically.</param>
IMouseSimulator MoveMouseBy(int pixelDeltaX, int pixelDeltaY);
/// <summary>
/// Simulates mouse movement to the specified location on the primary display device.
/// </summary>
/// <param name="absoluteX">The destination's absolute X-coordinate on the primary display device where 0 is the extreme left hand side of the display device and 65535 is the extreme right hand side of the display device.</param>
/// <param name="absoluteY">The destination's absolute Y-coordinate on the primary display device where 0 is the top of the display device and 65535 is the bottom of the display device.</param>
IMouseSimulator MoveMouseTo(double absoluteX, double absoluteY);
/// <summary>
/// Simulates mouse movement to the specified location on the Virtual Desktop which includes all active displays.
/// </summary>
/// <param name="absoluteX">The destination's absolute X-coordinate on the virtual desktop where 0 is the left hand side of the virtual desktop and 65535 is the extreme right hand side of the virtual desktop.</param>
/// <param name="absoluteY">The destination's absolute Y-coordinate on the virtual desktop where 0 is the top of the virtual desktop and 65535 is the bottom of the virtual desktop.</param>
IMouseSimulator MoveMouseToPositionOnVirtualDesktop(double absoluteX, double absoluteY);
/// <summary>
/// Simulates a mouse left button down gesture.
/// </summary>
IMouseSimulator LeftButtonDown();
/// <summary>
/// Simulates a mouse left button up gesture.
/// </summary>
IMouseSimulator LeftButtonUp();
/// <summary>
/// Simulates a mouse left button click gesture.
/// </summary>
IMouseSimulator LeftButtonClick();
/// <summary>
/// Simulates a mouse left button double-click gesture.
/// </summary>
IMouseSimulator LeftButtonDoubleClick();
/// <summary>
/// Simulates a mouse right button down gesture.
/// </summary>
IMouseSimulator RightButtonDown();
/// <summary>
/// Simulates a mouse right button up gesture.
/// </summary>
IMouseSimulator RightButtonUp();
/// <summary>
/// Simulates a mouse right button click gesture.
/// </summary>
IMouseSimulator RightButtonClick();
/// <summary>
/// Simulates a mouse right button double-click gesture.
/// </summary>
IMouseSimulator RightButtonDoubleClick();
/// <summary>
/// Simulates a mouse X button down gesture.
/// </summary>
/// <param name="buttonId">The button id.</param>
IMouseSimulator XButtonDown(int buttonId);
/// <summary>
/// Simulates a mouse X button up gesture.
/// </summary>
/// <param name="buttonId">The button id.</param>
IMouseSimulator XButtonUp(int buttonId);
/// <summary>
/// Simulates a mouse X button click gesture.
/// </summary>
/// <param name="buttonId">The button id.</param>
IMouseSimulator XButtonClick(int buttonId);
/// <summary>
/// Simulates a mouse X button double-click gesture.
/// </summary>
/// <param name="buttonId">The button id.</param>
IMouseSimulator XButtonDoubleClick(int buttonId);
/// <summary>
/// Simulates mouse vertical wheel scroll gesture.
/// </summary>
/// <param name="scrollAmountInClicks">The amount to scroll in clicks. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user.</param>
IMouseSimulator VerticalScroll(int scrollAmountInClicks);
/// <summary>
/// Simulates a mouse horizontal wheel scroll gesture. Supported by Windows Vista and later.
/// </summary>
/// <param name="scrollAmountInClicks">The amount to scroll in clicks. A positive value indicates that the wheel was rotated to the right; a negative value indicates that the wheel was rotated to the left.</param>
IMouseSimulator HorizontalScroll(int scrollAmountInClicks);
/// <summary>
/// Sleeps the executing thread to create a pause between simulated inputs.
/// </summary>
/// <param name="millsecondsTimeout">The number of milliseconds to wait.</param>
IMouseSimulator Sleep(int millsecondsTimeout);
/// <summary>
/// Sleeps the executing thread to create a pause between simulated inputs.
/// </summary>
/// <param name="timeout">The time to wait.</param>
IMouseSimulator Sleep(TimeSpan timeout);
}
}