static void PushToTalkWithLeftControlKey() { using (var teams = new Teams()) using (var monitor = new HumanInterfaceDeviceMonitor()) { using (monitor.KeyDown.Subscribe(kea => { if (kea.KeyCode == System.Windows.Forms.Keys.LControlKey) { monitor.Disable = true; teams.Unmute(); monitor.Disable = false; } })) using (monitor.KeyUp.Subscribe(kea => { if (kea.KeyCode == System.Windows.Forms.Keys.LControlKey) { monitor.Disable = true; teams.Mute(); monitor.Disable = false; } })) { Console.ReadLine(); } } }
public void Capture() { using (var ih = new HumanInterfaceDeviceMonitor()) { using (ih.Mouse.Subscribe(_ => log.InfoFormat("{0} {1}", _.Location, _.Clicks))) { ih.KeyDown.TakeWhile(_ => _.KeyCode != Keys.Escape).Wait(); } } }
public void TestAggregate() { var a = new ProgramUseAggregator(); Observable.Interval(TimeSpan.FromMilliseconds(25)).Select(_ => new KeyEventArgs(Keys.A)).Subscribe(a.KeyDown); using (new WinEventHook().ForegroundWindowChanged.Subscribe(a.Window)) using (var intercept = new HumanInterfaceDeviceMonitor()) { intercept.Mouse.Subscribe(a.Mouse); intercept.KeyDown.Subscribe(a.KeyDown); a.ProgramUse.Subscribe(_ => log.Info(_.Details())); ObservableTimeInterval.GetSeconds().Take(10).Wait(); } }
public void TestAggregate() { var a = new InputAggregator(); using (var hidMonitor = new HumanInterfaceDeviceMonitor()) using (new System.Reactive.Disposables.CompositeDisposable( ObservableTimeInterval.GetSeconds().Take(10).Subscribe(a.Time), hidMonitor.Mouse.Subscribe(a.Mouse), hidMonitor.KeyDown.Subscribe(a.KeyDown), hidMonitor.Mouse.ToDistance().Subscribe(_ => log.Info(_)), a.Input.Subscribe(_ => log.Info(_.MouseMove)) )) { a.Input.Wait(); } }
static void PushToTalkWithMiddleMouseButton() { using (var teams = new Teams()) using (var monitor = new HumanInterfaceDeviceMonitor()) { using (monitor.Mouse.Subscribe(me => { if (me.Button == System.Windows.Forms.MouseButtons.Middle) { if (me.Clicks > 0) { teams.Unmute(); } else if (me.Clicks < 0) { teams.Mute(); } } })) { Console.ReadLine(); } } }