コード例 #1
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
 private void Form1_Load(object sender, EventArgs e)
 {
     // Initialize Language with this as the IHost
     ScriptingLanguage.SetHost(this);
     // Create and initialize BasicNoUIObj object
     basicNoUIObj                = new WinWrap.Basic.BasicNoUIObj();
     basicNoUIObj.Begin         += basicNoUIObj_Begin;
     basicNoUIObj.Disconnecting += basicNoUIObj_Disconnecting;
     basicNoUIObj.DoEvents      += basicNoUIObj_DoEvents;
     basicNoUIObj.ErrorAlert    += basicNoUIObj_ErrorAlert;
     basicNoUIObj.Pause_        += basicNoUIObj_Pause_;
     basicNoUIObj.Secret         = new System.Guid("00000000-0000-0000-0000-000000000000");
     basicNoUIObj.Initialize();
     // automatically disconnect BasicNoUIObj when form closes
     basicNoUIObj.AttachToForm(this, WinWrap.Basic.ManageConstants.All);
     // Extend WinWrap Basic scripts with Examples.Extensions assembly
     // Add "Imports Examples.Extensions" to all WinWrap Basic scripts
     // Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
     basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));
     if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
     {
         LogError(basicNoUIObj.Error);
         buttonRunScript.Enabled = false;
     }
 }
コード例 #2
0
 void basicNoUIObj_End(object sender, EventArgs e)
 {
     WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
     if (timedout_ && basicNoUIObj.Error == null)
     {
         // timedout
         LogError(Examples.SharedSource.WinWrapBasic.FormatTimeoutError(basicNoUIObj, timedout_));
     }
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
 void basicNoUIObj_DoEvents(object sender, EventArgs e)
 {
     if (DateTime.Now >= timelimit_)
     {
         timedout_ = true;
         WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
         // time timelimit has been reached, terminate the script
         basicNoUIObj.Run = false;
     }
 }
コード例 #4
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
 void basicNoUIObj_Pause_(object sender, EventArgs e)
 {
     WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
     if (basicNoUIObj.Error == null)
     {
         LogError(Examples.SharedSource.WinWrapBasic.FormatTimeoutError(basicNoUIObj, timedout_));
     }
     // Script execution has paused, terminate the script
     basicNoUIObj.Run = false;
 }
コード例 #5
0
        public static string FormatTimeoutError(WinWrap.Basic.BasicNoUIObj basicNoUIObj, bool timedout)
        {
            // get the line that's executing right now
            var sb = new StringBuilder();

            sb.AppendLine((string)basicNoUIObj.Query("GetStack")["Caller[0]"]);
            sb.AppendLine(timedout ? "time exceeded" : "paused" + ", terminating script.");
            sb.AppendLine("");
            return(sb.ToString());
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
        private void ExecuteWinWrapBasic()
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin      += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents   += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_     += basicNoUIObj_Pause_;
                basicNoUIObj.Secret      = new System.Guid("00000000-0000-0000-0000-000000000000");
                basicNoUIObj.Initialize();
                // Extend WinWrap Basic scripts with Examples.Extensions assembly
                // Add "Imports Examples.Extensions" to all WinWrap Basic scripts
                // Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                    {
                        throw basicNoUIObj.Error.Exception;
                    }

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null) // script parsing error
                        {
                            throw basicNoUIObj.Error.Exception;
                        }

                        using (var instance = basicNoUIObj.CreateInstance(ScriptPath(Script) + "<IncidentAction"))
                        {
                            // Execute script code via an interface
                            IIncidentAction action = instance.Cast <IIncidentAction>();
                            TheIncident.Start(action, this.Text);
                        }
                    }
                }
                catch (WinWrap.Basic.TerminatedException)
                {
                    // script execution terminated, ignore error
                }
                catch (Exception ex)
                {
                    // script caused an exception
                    basicNoUIObj.ReportError(ex);
                }
            }
            TheIncident = null;
        }
コード例 #7
0
        void basicNoUIObj_Pause_(object sender, EventArgs e)
        {
            WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
            // timedout or paused while not debugging
            if (timedout_ || !basicNoUIObj.Synchronized)
            {
                if (basicNoUIObj.Error == null)
                {
                    LogError(Examples.SharedSource.WinWrapBasic.FormatTimeoutError(basicNoUIObj, timedout_));
                }

                // Script execution has paused, terminate the script
                basicNoUIObj.Run = false;
            }
        }
コード例 #8
0
        void basicNoUIObj_DoEvents(object sender, EventArgs e)
        {
            WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
            if (basicNoUIObj.Synchronized)
            {
                // process pending debugging commands
                ProcessSynchronizingEvents(basicNoUIObj);
            }

            if (basicNoUIObj.Run && DateTime.Now >= timelimit_)
            {
                timedout_ = true;
                // time timelimit has been reached, terminate the script
                basicNoUIObj.Run = false;
            }
        }
コード例 #9
0
        private void ProcessSynchronizingEvents(WinWrap.Basic.BasicNoUIObj basicNoUIObj)
        {
            string commands = commands_.ReadAll();

            if (!string.IsNullOrEmpty(commands))
            {
                timelimit_ = DateTime.Now + new TimeSpan(0, 0, 10); // timeout in ten seconds
                string[] commands2 = commands.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string command in commands2)
                {
                    string[] parts = command.Split(new char[] { ' ' }, 2);
                    int      id    = int.Parse(parts[0]);
                    string   param = Encoding.UTF8.GetString(Convert.FromBase64String(parts[1]));
                    basicNoUIObj.Synchronize(param, id);
                }
            }
        }
コード例 #10
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
        private void buttonRunScript_Click(object sender, EventArgs e)
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin      += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents   += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_     += basicNoUIObj_Pause_;
                basicNoUIObj.Secret      = new System.Guid("00000000-0000-0000-0000-000000000000");
                basicNoUIObj.Initialize();
                /// Extend WinWrap Basic scripts with Examples.Extensions assembly
                /// Add "Imports Examples.Extensions" to all WinWrap Basic scripts
                /// Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                basicNoUIObj.Sandboxed = true;
                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                    {
                        throw basicNoUIObj.Error.Exception;
                    }

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                        {
                            throw basicNoUIObj.Error.Exception;
                        }

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start(this.Text);
                    }
                }
                catch (Exception ex)
                {
                    basicNoUIObj.ReportError(ex);
                }
            }

            TheIncident = null;
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: WinWrap/winwrap_server
        static private string VerifyWinWrapBasic()
        {
            try
            {
                using (WinWrap.Basic.BasicNoUIObj basic = new WinWrap.Basic.BasicNoUIObj())
                {
                    basic.Secret = new Guid(Secret.MySecret);
                    basic.Initialize();
                    if (basic.IsInitialized())
                    {
                        return(null);
                    }
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            return(null);
        }
コード例 #12
0
ファイル: Form1.cs プロジェクト: WinWrap/WinWrapExamples
        private void buttonRunScript_Click(object sender, EventArgs e)
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
                basicNoUIObj.Secret = new System.Guid("00000000-0000-0000-0000-000000000000");
                basicNoUIObj.Initialize();
                /// Extend WinWrap Basic scripts with Examples.Extensions assembly
                /// Add "Imports Examples.Extensions" to all WinWrap Basic scripts
                /// Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                basicNoUIObj.Sandboxed = true;
                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                        throw basicNoUIObj.Error.Exception;

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                            throw basicNoUIObj.Error.Exception;

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start(this.Text);
                    }
                }
                catch (Exception ex)
                {
                    basicNoUIObj.ReportError(ex);
                }
            }

            TheIncident = null;
        }
コード例 #13
0
 void basicNoUIObj_DoEvents(object sender, EventArgs e)
 {
     WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
     if (basicNoUIObj.Synchronized)
     {
         conns_.ForEachConnection(conn =>
         {
             string[] commands = conn.GetReceviedData("\r\n");
             foreach (string command in commands)
             {
                 string param = Encoding.UTF8.GetString(Convert.FromBase64String(command));
                 basicNoUIObj.Synchronize(param, conn.Id);
             }
         });
     }
     else if (DateTime.Now >= timelimit_)
     {
         timedout_ = true;
         // time timelimit has been reached, terminate the script
         basicNoUIObj.Run = false;
     }
 }
コード例 #14
0
        private void WinWrapExecute()
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin      += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents   += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_     += basicNoUIObj_Pause_;
                basicNoUIObj.Secret      = new Guid(GetPatternString("Guid[(]\"(.*)\"[)]"));
                basicNoUIObj.Initialize();
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                    {
                        throw basicNoUIObj.Error.Exception;
                    }

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                        {
                            throw basicNoUIObj.Error.Exception;
                        }

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start("Default.aspx");
                    }
                }
                catch (Exception ex)
                {
                    basicNoUIObj.ReportError(ex);
                }
            }
            TheIncident = null;
        }
コード例 #15
0
ファイル: Form1.cs プロジェクト: LeoLiu1/WinWrapExamples
 void basicNoUIObj_ErrorAlert(object sender, EventArgs e)
 {
     WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
     LogError(basicNoUIObj.Error);
 }
コード例 #16
0
        private void WinWrapExecute(bool debug)
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin         += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents      += basicNoUIObj_DoEvents;
                basicNoUIObj.End           += basicNoUIObj_End;
                basicNoUIObj.ErrorAlert    += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_        += basicNoUIObj_Pause_;
                basicNoUIObj.Resume        += basicNoUIObj_Resume;
                basicNoUIObj.Synchronizing += basicNoUIObj_Synchronizing;
                basicNoUIObj.Secret         = new Guid(AzureOnlyStrings.GetNamedString("Guid", "00000000-0000-0000-0000-000000000000"));
                basicNoUIObj.Initialize();
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                if (debug)
                {
                    // prepare for debugging
                    basicNoUIObj.Synchronized = true;
                    Log("Debugging...");
                }

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                    {
                        throw basicNoUIObj.Error.Exception;
                    }

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                        {
                            throw basicNoUIObj.Error.Exception;
                        }

                        if (debug)
                        {
                            // step into the script event handler
                            module.StepInto = true;
                            timelimit_      = DateTime.Now + new TimeSpan(0, 0, 30); // timeout in 30 seconds
                        }

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start("Default.aspx");
                    }
                }
                catch (Exception ex)
                {
                    if (debug)
                    {
                        // report error and allow remote to catch up
                        basicNoUIObj.ReportError(ex);
                        basicNoUIObj.Wait(3);
                    }

                    basicNoUIObj.ReportError(ex);
                }

                if (debug)
                {
                    basicNoUIObj.Wait(3);
                    Log("Debugging complete.");
                }
            }
            TheIncident = null;
        }
コード例 #17
0
ファイル: Form1.cs プロジェクト: WinWrap/WinWrapExamples
 private void Form1_Load(object sender, EventArgs e)
 {
     // Initialize Language with this as the IHost
     ScriptingLanguage.SetHost(this);
     // Create and initialize BasicNoUIObj object
     basicNoUIObj = new WinWrap.Basic.BasicNoUIObj();
     basicNoUIObj.Begin += basicNoUIObj_Begin;
     basicNoUIObj.Disconnecting += basicNoUIObj_Disconnecting;
     basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
     basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
     basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
     basicNoUIObj.Secret = new System.Guid("00000000-0000-0000-0000-000000000000");
     basicNoUIObj.Initialize();
     // automatically disconnect BasicNoUIObj when form closes
     basicNoUIObj.AttachToForm(this, WinWrap.Basic.ManageConstants.All);
     // Extend WinWrap Basic scripts with Examples.Extensions assembly
     // Add "Imports Examples.Extensions" to all WinWrap Basic scripts
     // Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
     basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));
     if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
     {
         LogError(basicNoUIObj.Error);
         buttonRunScript.Enabled = false;
     }
 }
コード例 #18
0
        private void WinWrapExecute()
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
                basicNoUIObj.Secret = new Guid(GetPatternString("Guid[(]\"(.*)\"[)]"));
                basicNoUIObj.Initialize();
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                        throw basicNoUIObj.Error.Exception;

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                            throw basicNoUIObj.Error.Exception;

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start("Default.aspx");
                    }
                }
                catch (Exception ex)
                {
                    basicNoUIObj.ReportError(ex);
                }
            }
            TheIncident = null;
        }
コード例 #19
0
ファイル: Default.aspx.cs プロジェクト: WinWrap/HowtoExamples
 private void RunWinWrap()
 {
     try
     {
         using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
         {
             basicNoUIObj.Begin += basicNoUIObj_Begin;
             basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
             basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
             basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
             //#if DEBUG
             // Debug.Print in a script shown on webpage when running locally
             basicNoUIObj.DebugPrint += basicNoUIObj_DebugPrint;
             //#endif
             basicNoUIObj.Secret = new Guid(Utils.GetPatternString("wwhowto01", "Guid[(]\"(.*)\"[)]"));
             basicNoUIObj.Initialize();
             basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));
             //basicNoUIObj.AddReference(typeof(String).Assembly);
             //Button1.Text = basicNoUIObj.Evaluate("2+3");
             basicNoUIObj.VirtualFileSystem = new VirtualFileSystem();
             basicNoUIObj.RunFile("local/Macro1.bas");
             //DrawTriangle();
             //basicNoUIObj.RunFile("local/Macro2.bas");
             string macroName = String.Format(@"{0}/{1}", Session["Code"].ToString(), "Macro2.bas");
             basicNoUIObj.RunFile(macroName);
             ImageUser.ImageUrl = clientImage_.ImageUrl();
         }
     }
     catch (Exception e)
     {
         AppendToTextBox1(e.Message);
     }
 }
コード例 #20
0
ファイル: Default.aspx.cs プロジェクト: WinWrap/HowtoExamples
        protected void Button2_Click(object sender, EventArgs e)
        {
            TextBox2.Text = DateTime.Now.ToString();
            try
            {
                using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
                {
                    basicNoUIObj.Begin += basicNoUIObj_Begin;
                    basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
                    basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                    basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
                    //#if DEBUG
                    // Debug.Print in a script shown on webpage when running locally
                    basicNoUIObj.DebugPrint += basicNoUIObj_DebugPrint;
                    //#endif
                    basicNoUIObj.Secret = new Guid(Utils.GetPatternString("wwhowto01", "Guid[(]\"(.*)\"[)]"));
                    basicNoUIObj.Initialize();
                    basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));
                    //basicNoUIObj.AddReference(typeof(String).Assembly);
                    //Button1.Text = basicNoUIObj.Evaluate("2+3");
                    basicNoUIObj.VirtualFileSystem = new VirtualFileSystem();
                    /*basicNoUIObj.RunFile("local/Macro1.bas");
                    //DrawTriangle();
                    //basicNoUIObj.RunFile("local/Macro2.bas");
                    string macroName = String.Format(@"{0}/{1}", Session["Code"].ToString(), "Macro2.bas");
                    basicNoUIObj.RunFile(macroName);*/
                    using (var module = basicNoUIObj.ModuleInstance("local/Good.bas", false))
                    {
                        if (module == null)
                        {
                            string serror = Utils.FormatError(basicNoUIObj.Error, basicNoUIObj.VirtualFileSystem);
                            TextBox1.Text = serror;
                            TextBox1.Visible = true;
                        }
                        else
                        {

                            ScriptingLanguage.TriangleImage.Start();
                            ImageUser.ImageUrl = clientImage_.ImageUrl();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AppendToTextBox1(ex.Message);
            }
        }
コード例 #21
0
        private void WinWrapExecute(bool debug)
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
                basicNoUIObj.End += basicNoUIObj_End;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
                basicNoUIObj.Resume += basicNoUIObj_Resume;
                basicNoUIObj.Synchronizing += basicNoUIObj_Synchronizing;
                basicNoUIObj.Secret = new Guid(AzureOnlyStrings.GetNamedString("Guid", "00000000-0000-0000-0000-000000000000"));
                basicNoUIObj.Initialize();
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                if (debug)
                {
                    // prepare for debugging
                    basicNoUIObj.Synchronized = true;
                    Log("Debugging...");
                }

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                        throw basicNoUIObj.Error.Exception;

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null)
                            throw basicNoUIObj.Error.Exception;

                        if (debug)
                        {
                            // step into the script event handler
                            module.StepInto = true;
                            timelimit_ = DateTime.Now + new TimeSpan(0, 0, 30); // timeout in 30 seconds
                        }

                        // Execute script code via an event
                        ScriptingLanguage.TheIncident.Start("Default.aspx");
                    }
                }
                catch (Exception ex)
                {
                    if (debug)
                    {
                        // report error and allow remote to catch up
                        basicNoUIObj.ReportError(ex);
                        basicNoUIObj.Wait(3);
                    }

                    basicNoUIObj.ReportError(ex);
                }

                if (debug)
                {
                    basicNoUIObj.Wait(3);
                    Log("Debugging complete.");
                }
            }
            TheIncident = null;
        }
コード例 #22
0
ファイル: Form1.cs プロジェクト: WinWrap/WinWrapExamples
        private void ExecuteWinWrapBasic()
        {
            TheIncident = new Incident();
            using (var basicNoUIObj = new WinWrap.Basic.BasicNoUIObj())
            {
                basicNoUIObj.Begin += basicNoUIObj_Begin;
                basicNoUIObj.DoEvents += basicNoUIObj_DoEvents;
                basicNoUIObj.ErrorAlert += basicNoUIObj_ErrorAlert;
                basicNoUIObj.Pause_ += basicNoUIObj_Pause_;
                basicNoUIObj.Secret = new System.Guid("00000000-0000-0000-0000-000000000000");
                basicNoUIObj.Initialize();
                // Extend WinWrap Basic scripts with Examples.Extensions assembly
                // Add "Imports Examples.Extensions" to all WinWrap Basic scripts
                // Add "Imports Examples.Extensions.ScriptingLanguage" all WinWrap Basic scripts
                basicNoUIObj.AddScriptableObjectModel(typeof(ScriptingLanguage));

                try
                {
                    if (!basicNoUIObj.LoadModule(ScriptPath("Globals.bas")))
                        throw basicNoUIObj.Error.Exception;

                    using (var module = basicNoUIObj.ModuleInstance(ScriptPath(Script), false))
                    {
                        if (module == null) // script parsing error
                            throw basicNoUIObj.Error.Exception;

                        using (var instance = basicNoUIObj.CreateInstance(ScriptPath(Script) + "<IncidentAction"))
                        {
                            // Execute script code via an interface
                            IIncidentAction action = instance.Cast<IIncidentAction>();
                            TheIncident.Start(action, this.Text);
                        }
                    }
                }
                catch (WinWrap.Basic.TerminatedException)
                {
                    // script execution terminated, ignore error
                }
                catch (Exception ex)
                {
                    // script caused an exception
                    basicNoUIObj.ReportError(ex);
                }
            }
            TheIncident = null;
        }
コード例 #23
0
 void basicNoUIObj_Begin(object sender, EventArgs e)
 {
     WinWrap.Basic.BasicNoUIObj basicNoUIObj = sender as WinWrap.Basic.BasicNoUIObj;
     timedout_  = false;
     timelimit_ = DateTime.Now + new TimeSpan(0, 0, 1); // timeout in one second
 }