Example #1
0
        private static void HandleKeysFromEventPatternWithOperators()
        {
            using (var keyLogger = new EventedNativeKeyWatcher())
            {
                var observable = Observable.FromEventPattern <K.KeyEventArgs>(
                    keyLogger, nameof(EventedNativeKeyWatcher.KeyLogged));
                var operationObservable = observable
                                          .Select(e => e.EventArgs.Key)
                                          .Buffer(Program.BufferCount, Program.BufferSkip)
                                          .Delay(TimeSpan.FromSeconds(2));

                using (var subscription = observable.Subscribe(
                           pattern =>
                {
                    Program.CheckForTermination(pattern.EventArgs.Key);
                }))
                {
                    using (var operationSubscription = operationObservable.Subscribe(
                               operationPattern =>
                    {
                        Console.Out.WriteLine(operationPattern.ToArray());
                    }))
                    {
                        Application.Run();
                    }
                }
            }
        }
Example #2
0
 static void Main(string[] args)
 {
     using (var keyLogger = new EventedNativeKeyWatcher())
     {
         keyLogger.KeyLogged += Program.OnKeyLogged;
         Application.Run();
     }
 }
Example #3
0
        private static void PublishKeysAndListen()
        {
            Console.Out.WriteLine("Getting SignalR Connection...");

            var connection = new HubConnection(Program.SignalRUrl);
            var proxy      = connection.CreateHubProxy("KeyWatcherHub");

            connection.Start().GetAwaiter().GetResult();

            proxy.On <NotificationSentMessage>(
                "NotificationSent", message =>
            {
                Console.Out.WriteLine($"On() - {message.User} - {message.BadWords}");
            });

            using (proxy
                   .ObserveAs <NotificationSentMessage>("NotificationSent")
                   .Where(message => message.BadWords.Contains("cotton"))
                   .Take(3)
                   .Delay(TimeSpan.FromSeconds(2))
                   .Subscribe(message =>
            {
                Console.Out.WriteLine($"Subscribe() - {message.User} - {message.BadWords}");
            }))
            {
                Console.Out.WriteLine("Begin...");
                var userName = Program.GetUserName();

                using (var keyLogger = new EventedNativeKeyWatcher())
                {
                    var observable = Observable.FromEventPattern <K.KeyEventArgs>(
                        keyLogger, nameof(EventedNativeKeyWatcher.KeyLogged))
                                     .Select(e => e.EventArgs.Key)
                                     .Buffer(Program.BufferCount, Program.BufferSkip);

                    using (var subscription = observable.Subscribe(
                               pattern =>
                    {
                        var keys = pattern.ToArray();
                        var message = JsonConvert.SerializeObject(
                            new UserKeysMessage(userName, keys), Formatting.Indented);
                        var content = new StringContent(message,
                                                        Encoding.Unicode, "application/json");
                        var postResponse = new HttpClient().PostAsync(
                            Program.ApiUrl, content);
                        postResponse.Wait();

                        foreach (var key in keys)
                        {
                            Program.CheckForTermination(key);
                        }
                    }))
                    {
                        Application.Run();
                    }
                }
            }
        }
Example #4
0
#pragma warning restore IDE0022 // Use expression body for methods

        private static void HandleKeysViaEvents()
        {
            using (var keyLogger = new EventedNativeKeyWatcher())
            {
                keyLogger.KeyLogged += (s, e) =>
                {
                    Console.Write(e.Key);
                    Program.CheckForTermination(e.Key);
                };
                Application.Run();
            }
        }
Example #5
0
 private static void HandleKeysFromEventPattern()
 {
     using (var keyLogger = new EventedNativeKeyWatcher())
     {
         var observable = Observable.FromEventPattern <K.KeyEventArgs>(
             keyLogger, nameof(EventedNativeKeyWatcher.KeyLogged));
         using (var subscription = observable.Subscribe(
                    pattern =>
         {
             var key = pattern.EventArgs.Key;
             Console.Out.Write(key);
             Program.CheckForTermination(key);
         }))
         {
             Application.Run();
         }
     }
 }