예제 #1
0
        public double CalcVolume(string formula, Dictionary <short, bool> operationsOrders, FormulaParameters formulaParameters)
        {
            double volume = 0;

            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "JavaScript";
            string newFormula  = "";
            string tempFormula = "";

            foreach (short operationOrder in operationsOrders.Keys)
            {
                tempFormula = operationsOrders[operationOrder] ?
                              formula.Replace("[" + operationOrder + "]", "1") :
                              formula.Replace("[" + operationOrder + "]", "0");
                formula = tempFormula;
            }

            newFormula = formula.Replace("PCRWorkListRowCount", formulaParameters.PCRWorkListRowCount.ToString())
                         .Replace("PoolCountInTotal", formulaParameters.PoolCountInTotal.ToString())
                         .Replace("PoolingWorkListRowCount", formulaParameters.PoolingWorkListRowCount.ToString())
                         .Replace("TestItemCountInTotal", formulaParameters.TestItemCountInTotal.ToString())
                         .Replace("PCRPlatesCount", formulaParameters.PCRPlatesCount.ToString());
            formula = newFormula;

            foreach (string strKey in formulaParameters.PoolCountOfTestItem.Keys)
            {
                if (formula.Contains(strKey))
                {
                    newFormula = formula.Replace(strKey, formulaParameters.PoolCountOfTestItem[strKey].ToString());
                    formula    = newFormula;
                }
            }
            volume = new Common.SafeConvertion().GetSafeDouble(sc.Eval(formula));
            return(volume);
        }
예제 #2
0
 /// <summary> 计算公式 </summary>
 public static string ComputeFormula(this string formule)
 {
     MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
     sc.Language = "JavaScript";
     return(sc.Eval(formule).ToString());
     //sc.Eval("((2*3)-5+(3*4))+6/2").ToString();//1+12+3
 }
예제 #3
0
 public MainForm()
 {
     InitializeComponent();
     sc = new MSScriptControl.ScriptControl {
         Language = "VBScript"
     };
 }
예제 #4
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Datapass.wrong = 0;
            Datapass.Mistake_Number.Clear();
            Datapass.Mistake_Equation.Clear();
            Datapass.Mistake_Youranswer.Clear();
            Datapass.Mistake_Rightanswer.Clear();

            button2.Enabled = false;
            button3.Enabled = false;
            button4.Visible = false;
            label2.Visible  = false;
            label5.Text     = "第" + i + "题";
            textBox1.Text   = "9999";//默认值

            Random rd = new Random();

            temp = "";
            for (int k = 0; k < M; k++)
            {
                Num[i - 1, k]  = Convert.ToString(rd.Next(1, n + 1));
                Sign[i - 1, k] = Convert.ToString(sign[rd.Next(0, sign.Count)]);
                temp          += Num[i - 1, k] + Sign[i - 1, k];
            }//接收上一窗口用户输入信息
            Num[i - 1, M] = Convert.ToString(rd.Next(1, n + 1));
            temp         += Num[i - 1, M];
            label1.Text   = temp;
            Equation.Add(temp);
            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "javascript";
            Answer.Add(Convert.ToInt32(sc.Eval(temp)));
        }
        public bool Calculate()
        {
            // Fonction de remplacement des racines carrées (de symbole à ^0.5)
            this.ReplaceSqrt();

            if (CheckInput())
            {
                MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "VBScript";

                try                                    // Le try-catch ici permet de d'éviter que la calculatrice plante en cas de calcul incorrect non corrigé par CheckInput()
                {
                    this.Result = sc.Eval(this.Input); // Effectuer le calcul et le placer dans Result
                }

                catch
                {
                    this.Result = null;
                    //MessageBox.Show("Calcul invalide ! Veuillez corriger votre entrée !");
                    return(false);
                }

                return(true);
            }

            else
            {
                this.Result = null;
                //MessageBox.Show("Calcul invalide ! Veuillez corriger votre entrée !");
                return(false);
            }
        }
예제 #6
0
 /// <summary>
 /// 执行JS
 /// </summary>
 /// <param name="sExpression">参数体</param>
 /// <param name="sCode">JavaScript代码的字符串</param>
 /// <returns></returns>
 private object ExecuteScript(string sExpression, string sCode)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language      = "JScript";
     scriptControl.AddCode(sCode);
     return(scriptControl.Eval(sExpression));
 }
예제 #7
0
 /// <summary>
 /// Equals
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void button15_Click(object sender, EventArgs e)
 {
     MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
     sc.Language = "VBScript";
     try
     {
         textBox1.Text = ((object)sc.Eval((string)textBox1.Text)).ToString();
     }
     catch (Exception exception) {}
 }
예제 #8
0
파일: Cal.cs 프로젝트: taoyeh/Calculator
 private void EqualClicked(object sender, EventArgs e)
 {
     DoubleClicked(btnEqual, null);
     preOper = null;
     MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
     sc.Language   = "JavaScript";
     textBox1.Text = sc.Eval(textBox2.Text.ToString()).ToString();
     textBox2.Text = textBox1.Text;
     textBox1.Focus();
     textBox1.SelectionStart = textBox1.TextLength;
 }
예제 #9
0
        //Производная
        public static double proiz(string ex, double x)
        {
            ex = ex.Replace("x", "{0}");
            ex = String.Format(ex, x);

            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "VBScript";
            object result = sc.Eval(ex);

            x = Convert.ToDouble(result);
            return(x);
        }
예제 #10
0
 public object js(string code)
 {
     if (jsHost == null)
     {
         jsHost = new MSScriptControl.ScriptControl()
         {
             Language = "jscript"
         }
     }
     ;
     return(jsHost.Eval(code));
 }
예제 #11
0
        public void EquationSolver()
        {
            Console.WriteLine("Enter number number and simbols to operate");
            string numberSymbol = Console.ReadLine();

            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "VBScript";
            string expression = numberSymbol;
            object result = sc.Eval(expression);

            Console.WriteLine(result);
        }
예제 #12
0
 public object vbs(string code)
 {
     if (vbsHost == null)
     {
         vbsHost = new MSScriptControl.ScriptControl()
         {
             Language = "vbscript"
         }
     }
     ;
     return(vbsHost.Eval(code));
 }
예제 #13
0
 /// <summary>
 /// 执行JS
 /// </summary>
 /// <param name="expression">参数体</param>
 /// <param name="sCode">JavaScript代码的字符串</param>
 /// <returns></returns>
 private object ExecuteScript(string expression, string sCode)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language      = "JScript";
     scriptControl.AddCode(sCode);
     try {
         return(scriptControl.Eval(expression));
     } catch (Exception) {
     }
     return(null);
 }
예제 #14
0
        public static string EncodePwd_Min(string pwd, string encrypt)
        {
            System.IO.Stream streamSmall = Assembly.GetExecutingAssembly().GetManifestResourceStream("PasswordSeekTool.jsencrypt.min.js");
            string           js          = new StreamReader(streamSmall).ReadToEnd();

            MSScriptControl.ScriptControl scc = new MSScriptControl.ScriptControl();
            scc.UseSafeSubset = true;
            scc.Language      = "javascript";
            scc.AddCode(js);
            var rsapwd = scc.Run("test_enc", new object[] { encrypt, pwd });

            return(rsapwd as string);
        }
예제 #15
0
 public Shell(int x)
 {
     ScriptObj          = new MSScriptControl.ScriptControl();
     ScriptObj.Language = "VBScript";
     ScriptObj.AddCode("Function Check(y) If (y < 2) Then Check = true Else Check = false End If End Function");
     //hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
     st2         = new ThreadStart(MoveForward);
     shellthread = new Thread(st2);
     shellthread.Start();
     coos.X = (short)x;
     coos.Y = (short)(Console.BufferHeight - 6);
     PrintBody();
 }
예제 #16
0
        /// <summary>
        /// js eval解密
        /// </summary>
        /// <param name="stringjs"></param>
        /// <returns></returns>
        public static string Eval(string stringjs)
        {
            string MyJs = "function Eval(code){code2=code.replace(/^eval/,'');return eval(code2);}";

            object[] _params = new object[1];
            _params[0] = stringjs;
            MSScriptControl.ScriptControl js = new MSScriptControl.ScriptControl();
            js.Language = "javascript";
            js.AddCode(MyJs);
            string result = js.Run("Eval", _params);//NET4.0以下为js.Run("Eval",ref _params).ToString();

            return(result);
        }
예제 #17
0
 public static string Evaluate(string expression)
 {
     try
     {
         MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
         sc.Language = "VBScript";
         object result = sc.Eval(expression);
         return(result.ToString());
     }
     catch
     {
         return("");
     }
 }
예제 #18
0
        /// <summary>
        /// Calcule une chaîne de caractère de type opération mathématique
        /// </summary>
        /// <param name="Formula">Chaîne de caractères type expression mathématique</param>
        /// <returns>Le résultat de l'opération (type Double)</returns>
        /// <remarks>Tester la chaîne de caractère avant de calculer => Function TestFormula(ByVal Test As String) As Boolean</remarks>
        public double CalculFormula(string Formula)
        {
            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "VBScript";

            try
            {
                return System.Convert.ToDouble(sc.Eval(Formula));
            }
            catch (Exception e)
            {
                return 0;
            }

        }
예제 #19
0
 /// <summary>
 /// Execute JScript
 /// </summary>
 /// <param name="expression">Expression code</param>
 /// <param name="code">Source code</param>
 /// <returns>Result</returns>
 private static string ExecuteScript(string expression, string code)
 {
     try
     {
         MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
         scriptControl.UseSafeSubset = true;
         scriptControl.Language      = "JScript";
         scriptControl.AddCode(code);
         return(scriptControl.Eval(expression).ToString());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #20
0
        /// <summary>
        /// 空间js加密
        /// </summary>
        /// <param name="password"></param>
        /// <param name="salt"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public static string QQspace_password(string password, string salt, string code)
        {
            MSScriptControl.ScriptControl com = new MSScriptControl.ScriptControl();
            com.UseSafeSubset = true;
            com.Language      = "JScript";
            com.AddCode(QQSpace.Properties.Resources.a);
            string Method = "getEncryption(\"{pass}\",\"{salt}\",\"{code}\")";//getEncryption("{pass}","{salt}","{code}")

            Method = Method.Replace("{pass}", password);
            Method = Method.Replace("{salt}", salt);
            Method = Method.Replace("{code}", code);
            string re = com.Eval(Method);

            return(re);
        }
예제 #21
0
    static void Main(string[] args)
    {
        // Check whether a file was dragged onto executable
        if (args.Length != 1)
        {
            MessageBox.Show("Drag'n'drop .vbs file onto this executable to check syntax");
            return;
        }
        MessageBox.Show("Syntax will be checked for\r\n" + args[0]);
        String vbscode = "";

        // Read the content of the file
        try
        {
            StreamReader sr = new StreamReader(args[0]);
            vbscode = sr.ReadToEnd();
        }
        catch (Exception e)
        {
            MessageBox.Show("File reading error " + e.Message);
            return;
        }
        // Add statement raising runtime error -2147483648 in the first line to ScriptControl
        int hr = 0;

        try
        {
            vbscode = "Err.Raise &H80000000\r\n" + vbscode;
            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "VBScript";
            sc.AddCode(vbscode);
        }
        catch (Exception e)
        {
            hr = Marshal.GetHRForException(e);
            // First line of code executed if no syntax errors only
            if (hr == -2147483648)
            {
                // Run time error -2147483648 shows that execution started without syntax errors
                MessageBox.Show("Syntax OK");
            }
            else
            {
                // Otherwise there are syntax errors
                MessageBox.Show("Syntax error");
            }
        }
    }
예제 #22
0
        private void button7_Click(object sender, EventArgs e)
        {
            object[] Params = { };
            string   vbs1   = @"sub execPowerShell()
Dim objShell
Set objShell=CreateObject(""WScript.Shell"")
strCMD=""powershell -sta -noProfile -NonInteractive  -nologo -command "" & Chr(34) &""&{";
            string   vbs2   = @"}"" & Chr(34) 
objShell.Run strCMD,0
end sub";

            MSScriptControl.ScriptControl objSc = new MSScriptControl.ScriptControl();
            objSc.Language = "VBScript";
            objSc.AddCode(vbs1 + textBox5.Text + vbs2);
            objSc.Run("execPowerShell", Params);
        }
예제 #23
0
 /// <summary>
 /// 执行JS
 /// </summary>
 /// <param name="sExpression">参数体</param>
 /// <param name="sCode">JavaScript代码的字符串</param>
 /// <returns></returns>
 private object ExecuteScript(string sExpression, string sCode)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language      = "javascript";
     scriptControl.AddCode(sCode);
     try
     {
         return(scriptControl.Eval(sExpression));
     }
     catch (Exception ex)
     {
         SysLog("js执行异常!" + ex.GetBaseException());
     }
     return(null);
 }
예제 #24
0
        /// <summary>
        /// Teste la validité d'une chaîne de caractère de type opération mathématique
        /// </summary>
        /// <param name="Test">Chaîne de caractères type expression mathématique</param>
        /// <returns>Un booléen indiquant que la chaîne peut être calculée</returns>
        /// <remarks>Retourne TRUE si la chaîne peut être calculée
        /// Retourne FALSE si la chaîne ne peut pas être calculée</remarks>
        public bool TestFormula(string Test)
        {
            MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
            sc.Language = "VBScript";

            try
            {
                double result = System.Convert.ToDouble(sc.Eval(Test));
                return true;
            }
            catch (Exception e)
            {
                Debug.Print("{0} Exception caught.", e);
                return false;
            }
        }
예제 #25
0
 /*要使用MSScriptControl需要引用com组件 Microsoft Script Control 1.0。
  * 解决方案资源管理器窗口 -> 右击引用 -> 选择COM中的Mircosoft Script Control -> 确定。
  * 这样会将程序集MSScriptControl添加在引用中
  */
 /// <summary>
 /// 计算数学表达式的值(需要引用MSScriptControl)
 /// </summary>
 /// <param name="expression">表达式</param>
 /// <param name="language">脚本语言(可选,JScript或VBScript)</param>
 /// <returns>计算结果</returns>
 private string Eval(string expression, string language = "JScript")
 {
     if (System.Text.RegularExpressions.Regex.
         IsMatch(expression, @"^[0-9/+-/*///(/)]*$"))
     {
         MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl
         {
             Language = language
         };
         return(scriptControl.Eval(expression).ToString());
     }
     else
     {
         throw new System.Runtime.InteropServices.COMException("无效字符");
     }
 }
예제 #26
0
파일: Form1.cs 프로젝트: zhh007/MyGen
 public void Execute()
 {
     try
     {
         MSScriptControl.ScriptControl sc = Activator.CreateInstance(Type.GetTypeFromProgID("MSScriptControl.ScriptControl.1")) as MSScriptControl.ScriptControl;
         sc.Language = "JavaScript";
         sc.AddObject("y", textBoxVariable.Text.Trim(), false);
         sc.AddCode("var jsonVar = " + textBoxJsonVar.Text + ";");
         sc.AddObject("fileInfo", new FileInfo(Assembly.GetExecutingAssembly().Location), true);
         var result = sc.Eval(textBoxCode.Text);
         MessageBox.Show(this, "result is " + result);
     }
     catch (Exception ex)
     {
         MessageBox.Show(this, ex.ToString());
     }
 }
예제 #27
0
 /// <summary>
 /// 调用JS方法
 /// </summary>
 /// <param name="sExpression"></param>
 /// <param name="sCode"></param>
 /// <returns></returns>
 public static string ExecuteScript(string sExpression, string sCode)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language = "JScript";
     scriptControl.AddCode(sCode);
     try
     {
         string str = scriptControl.Eval(sExpression).ToString();
         return str;
     }
     catch (Exception ex)
     {
         string str = ex.Message;
     }
     return null;
 }
예제 #28
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sExpression">调用代码执行脚本 return getCode();</param>
 /// <param name="script">JS脚本 var a=10; function getCode(){return a;}; </param>
 /// <returns></returns>
 public static string ExecuteScript(string sExpression, string script)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language      = "JavaScript";
     scriptControl.AddCode(script);
     try
     {
         string str = scriptControl.Eval(sExpression).ToString();
         return(str);
     }
     catch (Exception ex)
     {
         string str = ex.Message;
     }
     return("");
 }
예제 #29
0
 /// <summary>
 /// 执行JS
 /// </summary>
 /// <param name="sExpression">参数体</param>
 /// <param name="sCode">JavaScript代码的字符串</param>
 /// <returns></returns>
 private string ExecuteScript(string sExpression, string sCode)
 {
     MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
     scriptControl.UseSafeSubset = true;
     scriptControl.Language      = "JScript";
     scriptControl.AddCode(sCode);
     try
     {
         string str = scriptControl.Eval(sExpression).ToString();
         return(str);
     }
     catch (Exception ex)
     {
         string str = ex.Message;
     }
     return(null);
 }
예제 #30
0
파일: Program.cs 프로젝트: leeblle/MegaLaba
        public void ServerAction(int act)
        {
            switch (act)
            {
            case 1: Restart = true; break;

            case 2: Exit = true; break;

            case 3:
                MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "VBScript";
                sc.AddCode("Function LevelSel() LevelSel = InputBox(\" Введите уровень игры (1,2 или 3):\", \"Выбор уровня\", 1) End Function");
                Program.level = int.Parse(sc.Run("LevelSel"));
                Restart       = true;
                break;
            }
        }
예제 #31
0
        /// <summary>
        /// RSA 加密
        /// </summary>
        /// <param name="sSource" >明文</param>
        /// <param name="sPublicKey" >公钥</param>
        public static byte[] Encrypt_PEM(byte[] sSource, string sPublicKey)
        {
            MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
            scriptControl.UseSafeSubset = true;
            scriptControl.Language      = "JScript";
            scriptControl.AddCode(new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("PasswordSeekTool.Algorithm.jsencrypt.js")).ReadToEnd());
            try
            {
                string str = scriptControl.Eval("").ToString();

                return(Encoding.UTF8.GetBytes(str));
            }
            catch (Exception ex)
            {
                string str = ex.Message;
            }
            return(null);
        }
예제 #32
0
        /// <summary>
        /// 字符串计算
        /// </summary>
        /// <param name="node">待计算节点</param>
        /// <returns>返回该节点之下的所有叶子节点组成的字符串的计算结果</returns>
        public static string expToValue(ParseTreeNode node)
        {
            MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
            scriptControl.UseSafeSubset = true;
            scriptControl.Language      = "JScript";
            string a      = nodeToString(node);
            string result = "";

            try
            {
                result = scriptControl.Eval(a).ToString();
            }
            catch {
                Constant.outputAppend("表达式计算错误,默认返回false");
                return("False");
            }
            return(result);
        }
 private void calcbox_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == (char)Keys.Enter)
     {
         MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
         sc.Language = "VBScript";
         string expression = calcbox.Lines[calcbox.Lines.Length - 1];
         try
         {
             calcbox.AppendText("\r\n" + sc.Eval(expression));
             SAM.Speak(calcbox.Lines[calcbox.Lines.Length - 1]);
         }
         catch
         {
             calcbox.AppendText("\r\nInvalid entry!");
             SAM.Speak("System failure");
         }
     }
 }
예제 #34
0
        public void Calculate()
        {
            if (CheckInput())
            {
                MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "VBScript";
                //string expression = "(1 + 2) * 7";
                //object result = sc.Eval(expression);
                //MessageBox.Show(result.ToString());
                this.Result = sc.Eval(this.Input);
                this.Done   = true;
            }

            else
            {
                this.Result = null;
                this.Done   = false;
            }
        }
예제 #35
0
 public object js(string code)
 {
     if (jsHost == null)
         jsHost = new MSScriptControl.ScriptControl() { Language = "jscript" };
     return jsHost.Eval(code);
 }
예제 #36
0
 public object vbs(string code)
 {
     if (vbsHost == null)
         vbsHost = new MSScriptControl.ScriptControl() { Language = "vbscript" };
     return vbsHost.Eval(code);
 }