Ejemplo n.º 1
0
        public ComboClient(IntPtr flashHandle)
        {
            sender = new MessageSender(flashHandle);

            // スレッドの初期化
            comboThread = new Thread(() =>
            {
                while (true)
                {
                    // 123457869→15分待機
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    sender.Key(KeyCode.VK_KEY_3);
                    sender.Key(KeyCode.VK_KEY_4);
                    sender.Key(KeyCode.VK_KEY_5);
                    sender.Key(KeyCode.VK_KEY_7);
                    sender.Key(KeyCode.VK_KEY_8);
                    sender.Key(KeyCode.VK_KEY_6);
                    sender.Key(KeyCode.VK_KEY_9);
                    Thread.Sleep((15 * 60 + 2) * 1000);

                    // 89123457→2分半待機
                    sender.Key(KeyCode.VK_KEY_8);
                    sender.Key(KeyCode.VK_KEY_9);
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    sender.Key(KeyCode.VK_KEY_3);
                    sender.Key(KeyCode.VK_KEY_4);
                    sender.Key(KeyCode.VK_KEY_5);
                    sender.Key(KeyCode.VK_KEY_7);
                    Thread.Sleep((2 * 60 + 30 + 1) * 1000);

                    // 12→2分半待機
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    Thread.Sleep((2 * 60 + 30 + 1) * 1000);

                    // 12→2分半待機
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    Thread.Sleep((2 * 60 + 30 + 1) * 1000);

                    // 1234→2分半待機
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    sender.Key(KeyCode.VK_KEY_3);
                    sender.Key(KeyCode.VK_KEY_4);
                    Thread.Sleep((2 * 60 + 30 + 1) * 1000);

                    // 12→2分半待機
                    sender.Key(KeyCode.VK_KEY_1);
                    sender.Key(KeyCode.VK_KEY_2);
                    Thread.Sleep((2 * 60 + 30 + 1) * 1000);

                    // 12→2分半待機
                    // ここまでのSleepに遊びを入れるのでこのフェイズを無効にしておく
                    // sender.Key(KeyCode.VK_KEY_1);
                    // sender.Key(KeyCode.VK_KEY_2);
                    Thread.Sleep((2 * 60 + 30) * 1000);
                }
            })
            {
                IsBackground = true
            };

            // スレッドの開始
            comboThread.Start();
        }
Ejemplo n.º 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
                                                  );
        }