using System; namespace WindowsInput { /// /// Implements the interface to simulate Keyboard and Mouse input and provide the state of those input devices. /// public class InputSimulator : IInputSimulator { /// /// The instance to use for simulating keyboard input. /// private readonly IKeyboardSimulator _keyboardSimulator; /// /// The instance to use for simulating mouse input. /// private readonly IMouseSimulator _mouseSimulator; /// /// The instance to use for interpreting the state of the input devices. /// private readonly IInputDeviceStateAdaptor _inputDeviceState; /// /// Initializes a new instance of the class using the specified , and instances. /// /// The instance to use for simulating keyboard input. /// The instance to use for simulating mouse input. /// The instance to use for interpreting the state of input devices. public InputSimulator(IKeyboardSimulator keyboardSimulator, IMouseSimulator mouseSimulator, IInputDeviceStateAdaptor inputDeviceStateAdaptor) { _keyboardSimulator = keyboardSimulator; _mouseSimulator = mouseSimulator; _inputDeviceState = inputDeviceStateAdaptor; } /// /// Initializes a new instance of the class using the default , and instances. /// public InputSimulator() { _keyboardSimulator = new KeyboardSimulator(this); _mouseSimulator = new MouseSimulator(this); _inputDeviceState = new WindowsInputDeviceStateAdaptor(); } /// /// Gets the instance for simulating Keyboard input. /// /// The instance. public IKeyboardSimulator Keyboard { get { return _keyboardSimulator; } } /// /// Gets the instance for simulating Mouse input. /// /// The instance. public IMouseSimulator Mouse { get { return _mouseSimulator; } } /// /// Gets the instance for determining the state of the various input devices. /// /// The instance. public IInputDeviceStateAdaptor InputDeviceState { get { return _inputDeviceState; } } } }