예제 #1
0
 public void ProgressiveClick()
 {
     // 靴アイコンは1113, 250
     sender.Click(1113, 250);
 }
예제 #2
0
        public MessageClient(IntPtr flashHandle, Config config)
        {
            sender = new MessageSender(flashHandle);
            cts    = new CancellationTokenSource();
            token  = cts.Token;

            // タスクの初期化
            if (!(config.DontClick))
            {
                clickTask = Task.Factory.StartNew(() =>
                {
                    while (true)
                    {
                        sender.Click(900, 320);
                        var interval = 1000 / config.ClickInterval;
                        Thread.Sleep(interval);

                        try
                        {
                            if (token.IsCancellationRequested)
                            {
                                token.ThrowIfCancellationRequested();
                            }
                        }
                        catch (OperationCanceledException) { return; }
                    }
                },
                                                  token,
                                                  TaskCreationOptions.None,
                                                  TaskScheduler.Default
                                                  );
            }
            capturingTask = Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    using (var screen = ScreenCapture.GrayCapture(flashHandle))
                    {
                        var recognizers = new ImageRecognitionBase[]
                        {
                            new Clickable(),
                        };
                        foreach (var recognizer in recognizers)
                        {
                            if (recognizer.Check(screen))
                            {
                                sender.Click(recognizer.X, recognizer.Y);
                            }
                        }
                    }

                    try
                    {
                        if (token.IsCancellationRequested)
                        {
                            token.ThrowIfCancellationRequested();
                        }
                    }
                    catch (OperationCanceledException) { return; }

                    Thread.Sleep(15000);
                }
            },
                                                  token,
                                                  TaskCreationOptions.None,
                                                  TaskScheduler.Default
                                                  );
        }