private void RefreshTick(object sender, EventArgs e)
        {
            if (ScreenBox.Visible)
            {
                using (var Screenshot = ChromiumBrowser.ScreenshotOrNull())
                {
                    if (Screenshot == null)
                    {
                        return;
                    }
                    try
                    {
                        Graphics.DrawImage(Screenshot, 0, 0, FrameRect, GraphicsUnit.Pixel);
                        Graphics.Flush(System.Drawing.Drawing2D.FlushIntention.Sync);

                        Frameskip = !Frameskip;

                        if (Frameskip)
                        {
                            ScreenBox.Invalidate();
                        }
                    }
                    catch { }
                }
            }
            else
            {
                RadialProgBar.StartingAngle += 7;
                if (RadialProgBar.StartingAngle > 359)
                {
                    RadialProgBar.StartingAngle = 0;
                }
            }
        }
        private void ScreenClicked(object sender, EventArgs e)
        {
            var  ClickPos = ScreenBox.PointToClient(Cursor.Position);
            bool Verify   = VerifyRect.Contains(ClickPos);

            ClickPos = new Point(ClickPos.X + FrameRect.X, ClickPos.Y + FrameRect.Y);
            BrowserHost.ExecuteClick(ClickPos);

            if (Verify)
            {
                LoadingMode(true);
                ThreadTools.Wait(3000, true);
                if (IsCaptchaSolved())
                {
                    Close();
                }
                else
                {
                    UpdateRects();
                    LoadingMode(false);
                }
            }
            else
            {
                StatusCheck.Enabled = false;
                StatusCheck.Enabled = true;
                Clicks++;
            }
        }
    void Start()
    {
        parallaxScales = new float[backgrounds.Length];

        for (int i = 0; i < backgrounds.Length; i++)
        {
            parallaxScales[i] = backgrounds[i].position.z * -1;
        }

        screenBox        = transform.GetComponent <ScreenBox>();
        relativePosition = cam.InverseTransformPoint(screenBox.transform.position).x;
    }
Exemple #4
0
        private void ScreenMouseUp(object sender, MouseEventArgs e)
        {
            var ClickPos = ScreenBox.PointToClient(Cursor.Position);

            ClickPos = new Point(ClickPos.X + ViewRectangle.X, ClickPos.Y + ViewRectangle.Y);
            if (e.Button == MouseButtons.Middle)
            {
                return;
            }

            var Button = e.Button == MouseButtons.Left ? MouseButtonType.Left : MouseButtonType.Right;

            BrowserHost.SendMouseClickEvent(new MouseEvent(ClickPos.X, ClickPos.Y, CefEventFlags.None), Button, true, 1);
        }
Exemple #5
0
 // Очистка экрана
 private void buttonClr_Click(object sender, EventArgs e)
 {
     if (buttonClr.Text == "CLR")
     {
         ScreenBox.Clear();
     }
     else
     {
         HistoryBox1.Clear();
     }
     if (Properties.Settings.Default.AutoALT && checkBoxMode.Checked)
     {
         checkBoxMode.Checked = false;
     }
 }
Exemple #6
0
        // Бекспейс
        private void buttonBack_Click(object sender, EventArgs e)
        {
            int csel = ScreenBox.SelectionStart;

            if (ScreenBox.Text.Length != 0 && csel != 0)
            {
                ScreenBox.Text = ScreenBox.Text.Substring(0, csel - 1) + ScreenBox.Text.Substring(csel, ScreenBox.Text.Length - csel);
                csel          -= 1;
            }
            ScreenBox.Focus();
            ScreenBox.Select(csel, 0);
            if (Properties.Settings.Default.AutoALT && checkBoxMode.Checked)
            {
                checkBoxMode.Checked = false;
            }
        }
Exemple #7
0
        private void buttonFunct_Click(object sender, EventArgs e)
        {
            int csel = ScreenBox.SelectionStart;

            if (ScreenBox.Text.Length != 0 && csel != 0)
            {
                ScreenBox.Text = ScreenBox.Text.Substring(0, csel) + ((Button)sender).Text + "(" + ScreenBox.Text.Substring(csel, ScreenBox.Text.Length - csel);
            }
            else
            {
                ScreenBox.Text = ((Button)sender).Text + "(" + ScreenBox.Text.Substring(csel, ScreenBox.Text.Length - csel);
            }
            csel += ((Button)sender).Text.Length + 1;
            ScreenBox.Focus();
            ScreenBox.Select(csel, 0);
            if (Properties.Settings.Default.AutoALT && checkBoxMode.Checked)
            {
                checkBoxMode.Checked = false;
            }
        }
Exemple #8
0
        private void buttonNewMatr_M_Click(object sender, EventArgs e)
        {
            if (savedVariables == null)
            {
                savedVariables = new Dictionary <string, string>();
            }
            char i;

            for (i = 'A'; i <= 'N'; i++)
            {
                if (!savedVariables.ContainsKey(i.ToString()))
                {
                    break;
                }
            }
            EditMatrix em = new EditMatrix(i);

            string[] tmp;
            if (DialogResult.OK == em.ShowDialog(this))
            {
                tmp = em.result.Split('#');
                savedVariables.Add(tmp[0], tmp[1]);

                if (HistoryBox1.Text == "")
                {
                    HistoryBox1.Text += tmp[0] + "=" + tmp[1];
                }
                else
                {
                    HistoryBox1.Text += "\r\n" + tmp[0] + "=" + tmp[1];
                }

                Button tbtn = new Button();
                tbtn.Text = tmp[0];
                buttonDigit_Click(tbtn, e);
            }
            ScreenBox.Focus();
        }
Exemple #9
0
        // Начать вычисление
        private void buttonEnter_Click(object sender, EventArgs e)
        {
            if (buttonEnter.Text == "WA=")
            {
                if (ScreenBox.Text.Length > 200 && (DialogResult.Yes != MessageBox.Show("Похоже, у вас слишком длинный.. запрос. Возможно, WolframAlpha обрежет его и вычисления будут неверны. Продолжить?", "Превышена длина запроса", MessageBoxButtons.YesNo, MessageBoxIcon.Question)))
                {
                    return;
                }
                string inpstr = ScreenBox.Text;

                String WolframAlphaApplicationID = Properties.Settings.Default.WA_AppKey;
                if (WolframAlphaApplicationID == "")
                {
                    MessageBox.Show("Неверно задан ключ для WolframAPI. Введите действительный ключ.", "Не задан ключ приложения", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }
                if (Properties.Settings.Default.WA_RespSend >= Properties.Settings.Default.WA_RespLimit)
                {
                    MessageBox.Show("Превышен месячный лимит запросов. Увеличить лимит или отключить контроль можно в настройках.", "Превышен лимит запросов", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }

                ScreenBox.Clear();
                WolframResult WR = new WolframResult();
                WR.ShowAndCalculate(inpstr, WolframAlphaApplicationID);
                if (HistoryBox1.Text == "")
                {
                    HistoryBox1.Text += "WAQUERY~" + inpstr;
                }
                else
                {
                    HistoryBox1.Text += "\r\n" + inpstr;
                }
            }
            else
            {
                string inpstr = ScreenBox.Text;
                if (inpstr.Contains("X") || inpstr.Contains("Y"))
                {
                    buttonDigit_Click(sender, e);
                }
                else if (inpstr.StartsWith("set"))
                {
                    if (inpstr.Contains("="))
                    {
                        KeyValuePair <string, string> parsedres = new KeyValuePair <string, string>();
                        if (parseVariable(inpstr, ref parsedres))
                        {
                            if (savedVariables == null)
                            {
                                savedVariables = new Dictionary <string, string>();
                            }
                            if (savedVariables.Keys.Contains(parsedres.Key))
                            {
                                if (DialogResult.No == MessageBox.Show("Переменная с таким именем уже существует. Перезаписать?", "Замена", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                                {
                                    return;
                                }
                            }

                            ScreenBox.Clear();
                            List <Token> RPN1   = Arithmetic.GetRPN(parsedres.Value, savedVariables);
                            string       result = savedVariables[parsedres.Key] = PostProcess(Arithmetic.Calculate(ref RPN1, gradusmode));
                            if (RPN1 != null)
                            {
                                RPN1.Clear();
                            }
                            savedVariables[parsedres.Key] = result;
                            if (HistoryBox1.Text == "")
                            {
                                HistoryBox1.Text += parsedres.Key + "=" + result + ((parsedres.Value == result) ? "" : " [" + parsedres.Value + "]");
                            }
                            else
                            {
                                HistoryBox1.Text += "\r\n" + parsedres.Key + "=" + result + ((parsedres.Value == result) ? "" : " [" + parsedres.Value + "]");
                            }
                        }
                    }
                    else
                    {
                        buttonDigit_Click(sender, e);
                    }
                }
                else
                {
                    string heststr = inpstr;
                    PreProcess(ref inpstr);
                    string result = "";

                    switch (panelmode)
                    {
                    case "norm":
                    case "engen":
                    default:
                        //Вычисление на обычной или инженерной панели
                        //List<Token> RPN1 = Arithmetic.GetRPN(inpstr);
                        //result = Convert.ToString(Arithmetic.Calculate(ref RPN1, gradusmode));
                        //result = PostProcess(Convert.ToDouble(result));
                        //if (RPN1 != null) RPN1.Clear();
                        List <Token> RPN1 = Arithmetic.GetRPN(inpstr, savedVariables);
                        result = Convert.ToString(Arithmetic.Calculate(ref RPN1, gradusmode));
                        result = PostProcess(Convert.ToDouble(result));
                        if (RPN1 != null)
                        {
                            RPN1.Clear();
                        }
                        break;

                    case "prog":
                        //Вычисление на програмной панели
                        if (radioLogicExpr.Checked)
                        {
                            List <Token> RPN2 = BinaryArithmetic.GetRPN(inpstr);
                            Dictionary <string, bool> variables = BinaryArithmetic.GetVariables(RPN2);
                            int count = (int)Math.Pow(2, variables.Count);
                            result = "{[";
                            for (int i = 0; i < count; i++)
                            {
                                BinaryArithmetic.AddVariableData(i + count, variables);
                                result += (BinaryArithmetic.Calculate(RPN2, variables) ? "1|" : "0|");
                            }
                            result = result.Substring(0, result.Length - 1) + "]}";
                        }
                        else
                        {
                            List <Token> RPN2 = Arithmetic.GetRPN(BinaryArithmetic.ConvertStringToSS(inpstr, SSmode, 10));
                            result = Convert.ToString(Arithmetic.Calculate(ref RPN2, gradusmode));
                            result = BinaryArithmetic.ConvertStringToSS(result, 10, SSmode);
                            if (RPN2 != null)
                            {
                                RPN2.Clear();
                            }
                        }
                        break;

                    case "matr":
                        //Вычисление на матричной панели
                        //Dictionary<string, string> mas = new Dictionary<string, string>();
                        //MatrixArithmetic.GetMatrixes(ref inpstr, ref mas);
                        List <Token> RPN3 = MatrixArithmetic.GetRPN(inpstr);
                        //result = MatrixArithmetic.Calculate(RPN3, mas);
                        result = MatrixArithmetic.Calculate(RPN3, savedVariables);
                        if (RPN3 != null)
                        {
                            RPN3.Clear();
                        }
                        //mas.Clear();
                        break;
                    }

                    heststr       += "=" + result;
                    ScreenBox.Text = result;
                    if (HistoryBox1.Text == "")
                    {
                        HistoryBox1.Text += heststr;
                    }
                    else
                    {
                        HistoryBox1.Text += "\r\n" + heststr;
                    }
                }
            }
        }