Beispiel #1
0
        public CustomAction WaitNewGambling(IEnumerator <CustomAction> customActions)
        {
            try
            {
                while (true)
                {
                    if (ControllerCancelToken.IsCancellationRequested)
                    {
                        ControllerCancelToken = ControllerCancelToken.Reset();
                        return(null);
                    }

                    var picBuffer = ((ITakesScreenshot)Instance).GetScreenshot().AsByteArray;

                    var bitmap_Cut = PictureHelper.ProcessImage(_trackingArea, picBuffer);
                    //bitmap_Cut.Save($@"C:\Users\NGPONG\Desktop\SmartTools\SmartTools\SmartTools\bin\Release\image\image_{(index++).ToString()}.png");
                    var page      = Tesseract.Process(bitmap_Cut, PageSegMode.SingleBlock);
                    var readByPic = page.GetText();

                    // Dispose Unmanaged variable because of the calling recursive functions
                    Array.Clear(picBuffer, 0, picBuffer.Length);
                    page.Dispose();

                    if (Regex.IsMatch(readByPic, "开局"))
                    {
                        double balance;
                        var    response = Config.GetBalanceAsync();
                        var    isMatch  = double.TryParse(response.Result, out balance); // Return HTML code maybe.
                        if (isMatch)
                        {
                            OnProcessing.Invoke(balance.ToString()); // Update GUI balance display.
                        }
                        // To call back function.
                        break;
                    }

                    GC.Collect();
                }

                return(customActions.MoveNext <CustomAction>());
            }
            catch (Exception e)
            {
                LogHelper.Error(e);
                return(null);
            }
        }
Beispiel #2
0
 public void Stop()
 {
     ControllerCancelToken.Cancel();
     // Clear action queue
     this._actionsQueue = null;
 }