public static void Main() { // Manual loading /*IMouseHook mouseHook = new Core.Windows.Mouse.MouseHook(); * // IMouseHook mouseHook = new Core.Windows.Mouse.RawMouseHook(); * IKeyboardHook keyboardHook = new Core.Windows.Keyboard.KeyboardHook(); * IMessageLoop loop = new Core.Windows.MessageLoop.MessageLoop();*/ // Dynamic loading IHook[] hooks = IHook .Load(Environment.CurrentDirectory) // Load all hooks from current directory's DLLs .Where(x => x.CanBeInstalled) // Select only those hooks that are supported by the current OS .Where(x => x.CanPreventDefault) // We're interested in hooks that can prevent default event actions .ToArray(); IMouseHook mouseHook = hooks.OfType <IMouseHook>().First(); IKeyboardHook keyboardHook = hooks.OfType <IKeyboardHook>().First(); IMessageLoop loop = IMessageLoop.Load(Environment.CurrentDirectory).First(x => x.CanBeRunned); CancellationTokenSource source = new CancellationTokenSource(); loop.OnEvent += Log; // Stop message loop on Ctrl + Shift + S keyboardHook.OnEvent += (_, e) => { if (e.Key.HasFlags(Keys.Control, Keys.Shift, Keys.S)) { source.Cancel(); } }; // Disable 'M' keyboardHook.OnEvent += (_, e) => { if (e.CanPreventDefault && e.Key.HasFlag(Keys.M)) { e.PreventDefault(); } }; // Disable middle mouse button mouseHook.OnEvent += (_, e) => { if (e.CanPreventDefault && e.MouseEventType == MouseEventType.Key && e.Key == MouseButtons.Middle) { e.PreventDefault(); } }; Console.WriteLine("Hook!"); Console.WriteLine("Press CTRL + SHIFT + S to stop!"); loop.Run(source.Token, mouseHook, keyboardHook); Console.Write("Press any key to exit..."); Console.ReadKey(true); }
public DisplayBindingService(IPropertyService propertyService, IMessageLoop mainThread, Func<ErrorDocumentDisplayBinding> errorDocDisplayBindingFactory) { main_thread = mainThread; error_doc_display_binding_factory = errorDocDisplayBindingFactory; descriptors = AddInTree.BuildItems<DisplayBindingDescriptor>(DisplayBindingPath, null, true); display_binding_properties = propertyService.NestedProperties("DisplayBindingService"); }
public TestExecutionManager() { this.buildService = SD.BuildService; this.taskService = new UnitTestTaskService(); this.saveAllFilesCommand = new UnitTestSaveAllFilesCommand(); this.testService = SD.GetRequiredService <ITestService>(); this.workbench = SD.Workbench; this.statusBarService = SD.StatusBar; this.mainThread = SD.MainThread; this.buildOptions = new UnitTestBuildOptions(); }
public RecordCommand( ISessionManager sessionManager, IConsoleFormatter consoleFormatter, IInteractiveCommandLine commandLine, IMessageLoop messageLoop) { this.sessionManager = sessionManager; this.consoleFormatter = consoleFormatter; this.commandLine = commandLine; this.messageLoop = messageLoop; }
public TestExecutionManager() { this.buildService = SD.BuildService; this.taskService = new UnitTestTaskService(); this.saveAllFilesCommand = new UnitTestSaveAllFilesCommand(); this.testService = SD.GetRequiredService<ITestService>(); this.workbench = SD.Workbench; this.statusBarService = SD.StatusBar; this.mainThread = SD.MainThread; this.buildOptions = new UnitTestBuildOptions(); }
protected override void Dispose(bool disposing) { if (disposing) { this.mouseListener.Dispose(); this.mouseListener = null; this.keyboardListener.Dispose(); this.keyboardListener = null; if (this.messageLoop != null) { this.messageLoop.Dispose(); this.messageLoop = null; } } base.Dispose(disposing); }
public DeviceListener() { this.keyboardListener = new KeyboardListener(); this.mouseListener = new MouseListener(); this.messageLoop = new WindowsFormsMessageLoop(); }
public ThreadSafeCodeGenerator(CodeGenerator codeGenerator) { this.codeGenerator = codeGenerator; this.mainThread = SD.MainThread; }
/// <inheritdoc cref="Run(IMessageLoop, long, Func{bool, bool}, IHook[])"/> public static void Run(this IMessageLoop loop, Func <bool, bool> goOnPredicate, params IHook[] hooks) => loop.Run(hooks, goOnPredicate);
/// <inheritdoc cref="Run(IMessageLoop, long, Func{bool, bool}, IHook[])"/> public static void Run(this IMessageLoop loop, IEnumerable <IHook> hooks) => loop.Run(hooks, quit => !quit);
/// <inheritdoc cref="Run(IMessageLoop, long, Func{bool, bool}, IHook[])"/> public static void Run(this IMessageLoop loop, params IHook[] hooks) => loop.Run(hooks, quit => !quit);
/// <inheritdoc cref="Run(IMessageLoop, long, Func{bool, bool}, IHook[])"/> public static void Run(this IMessageLoop loop, IEnumerable <IHook> hooks, long processId) => loop.Run(hooks, processId, quit => !quit);
/// <inheritdoc cref="Run(IMessageLoop, long, IHook[])"/> public static void Run(this IMessageLoop loop, Process process, params IHook[] hooks) => loop.Run(hooks, process.Id, quit => !quit);
/// <inheritdoc cref="Run(IMessageLoop, IEnumerable{IHook}, long, CancellationToken)"/> public static void Run(this IMessageLoop loop, CancellationToken cancellationToken, params IHook[] hooks) => loop.Run(hooks, quit => !(quit || cancellationToken.IsCancellationRequested));
/// <inheritdoc cref="Run(IMessageLoop, IEnumerable{IHook}, long, CancellationToken)"/> public static void Run(this IMessageLoop loop, IEnumerable <IHook> hooks, CancellationToken cancellationToken) => loop.Run(hooks, quit => !(quit || cancellationToken.IsCancellationRequested));