public Options_Solving_Controller() { ModuleName = new Label(); ModuleName.Parent = this; ModuleName.Location = new Point(10, 10); ModuleName.AutoSize = true; RefreshLabel(RunRegistry.GetController()); new Note(this, 10, 35, "Edit"); Edit = new TextBox(); Edit.Parent = this; Edit.Location = new Point(40, 33); Edit.Size = new Size(240, 20); Edit.Text = RunRegistry.GetController(); Button Apply = new Button(); Apply.Parent = this; Apply.Location = new Point(290, 33); Apply.Size = new Size(60, 20); Apply.Text = "Apply"; Apply.Click += new EventHandler(OnApply); Button Browse = new Button(); Browse.Parent = this; Browse.Location = new Point(360, 33); Browse.Size = new Size(60, 20); Browse.Text = "Browse"; Browse.Click += new EventHandler(OnBrowse); Button Reset = new Button(); Reset.Parent = this; Reset.Location = new Point(430, 33); Reset.Size = new Size(60, 20); Reset.Text = "Reset"; Reset.Click += new EventHandler(OnReset); Label DefaultName = new Label(); DefaultName.Parent = this; DefaultName.Location = new Point(10, 60); DefaultName.AutoSize = true; DefaultName.Text = "Default Name : " + RunRegistry.GetDefaultController(); }
public static void Run() { if (Running) { if (!Task.HasExited) { AlreadyRunning(); return; } } String Controller = RunRegistry.GetController(); if (!System.IO.File.Exists(Controller)) { CantFind("controller", Controller); return; } String Solver = RunRegistry.GetSolver(); String Model = RunRegistry.GetModel(); String Msg = ""; Msg += "<root> "; Msg += "<model> " + Model + " </model>"; Msg += "<solver> " + Solver + " </solver>"; Msg += " </root>"; Task = new Process(); Task.StartInfo.FileName = Controller; Task.StartInfo.Arguments = AddQuotes(Msg); if (GeneralRegistry.GetWaitForExit()) { State.WaitForExit(); } bool OK = Task.Start(); /* Task.Start() starts the named task, but also associates * the task with the process object. You can invoke * WaitForExit() only after this association has been made. * If invoked to early, an exception is thrown. */ if (GeneralRegistry.GetWaitForExit()) { Task.WaitForExit(); State.HaveExit(); } if (!OK) { FailedToStart(Controller); Running = false; } else { Running = true; } }