private void btnSave_Click(object sender, RoutedEventArgs e) { Data.PEPath = Data.PEPath.Trim(); if (string.IsNullOrEmpty(Data.PEPath)) return; IFEOItem Item = new IFEOItem { ManageByThis = Data.ManageByThis, Debugger = Data.ManageByThis ? $@""" { Global.IFEOExecution } """ : Data.DebuggerPath, PEName = Data.PEPath, Remark = Data.Remark, RunMethod = Data.RunMethod }; IFEO.Save(Item); InitializeData(); // Refresh it }
private void btnSave_Click(object sender, RoutedEventArgs e) { Data.PEPath = Data.PEPath.Trim(); if (Data.PEPath == "") return; IFEOItem Item = new IFEOItem(); Item.ManageByThis = Data.ManageByThis; if (Data.ManageByThis) { Item.Debugger = "\"" + Global.IFEOExecution + "\""; } else { Item.Debugger = Data.DebuggerPath; } Item.PEName = Data.PEPath; Item.Remark = Data.Remark; Item.RunMethod = Data.RunMethod; IFEO.Save(Item); InitializeData(); // Refresh it }
/// <summary> /// Save IFEO Item to Registry /// </summary> /// <param name="Item">The item.</param> /// <returns> /// true /// </returns> public bool Save(IFEOItem Item) { Log.WriteLine("Start Saving Key"); IFEOKey = Registry.LocalMachine.OpenSubKey(Global.IFEORegPath, true); try { Item.RegKey = IFEOKey.CreateSubKey(Item.PEName); Log.WriteLine("Create Sub Key(" + Item.PEName + ") Successfully."); } catch (Exception Ex) { Log.WriteLine("Error when creating Sub Key(" + Item.PEName + "): " + Ex.ToString()); Log.MessageBoxError((string)Application.Current.FindResource("cfmOpenSubKeyError") + "\n" + Item.PEName + "\n\n" + Ex.ToString()); return false; } try { if (Item.Debugger == "") { Item.RegKey.DeleteValue("Debugger"); } else { Item.RegKey.SetValue("Debugger", Item.Debugger); } } catch (Exception Ex) { Log.WriteLine("Error when creating Debugger: " + Ex.ToString()); Log.MessageBoxError((string)Application.Current.FindResource("cfmCreateDebuggerError") + "\n" + Item.PEName + "\n\n" + Ex.ToString()); return false; } Item.RegKey.SetValue("IFEOManage_Path", Global.IFEORunPath); Item.RegKey.SetValue("IFEOManage_Remark", Item.Remark); Item.RegKey.SetValue("IFEOManage_Manage", Item.ManageByThis); Item.RegKey.SetValue("IFEOManage_RunMethod", Item.RunMethod); Item.RegKey.Close(); Log.WriteLine("Saved key: " + Item.ToString()); Load(); return true; }
private void _FormatDebuggerStringAndUpdate(IFEOItem Debugger) { if (Debugger.ManageByThis) { // Auto Update if (Debugger.Debugger != Global.IFEOExecution) { Log.WriteLine("Refresh Debugger(" + Debugger.PEName + ") From (" + Debugger.Debugger + ") To (" + Global.IFEOExecution + ")"); Debugger.RegKey.SetValue("Debugger", Global.IFEOExecution); Debugger.RegKey.SetValue("IFEOManage_Path", Global.IFEORunPath); } Debugger.ManageByThis = true; Debugger.Debugger = (string)Application.Current.FindResource("cfmManagedByThis"); } }
/// <summary> /// Loads IFEO items /// </summary> /// <returns>The state of load</returns> public bool Load() { Log.WriteLine("Load registry"); IFEOKey = Registry.LocalMachine.OpenSubKey(Global.IFEORegPath, true); IFEOItem TempIFEO; if (IFEOKey != null) { Items.Clear(); foreach (string keyName in IFEOKey.GetSubKeyNames()) { RegistryKey SubKey = IFEOKey.OpenSubKey(keyName, true); if (SubKey != null) { if (SubKey.GetValueNames().ToList().ConvertAll(d => d.ToLower()).IndexOf("debugger") > -1) { TempIFEO = new IFEOItem(); TempIFEO.ManageByThis = ((string)GetValue(SubKey, "IFEOManage_Manage") == "True"); TempIFEO.RegKey = SubKey; TempIFEO.IFEOPath = (string)GetValue(SubKey, "IFEOManage_Path"); TempIFEO.PEName = SubKey.Name.Split('\\').Last(); TempIFEO.Debugger = SubKey.GetValue("Debugger").ToString(); TempIFEO.Remark = (string)GetValue(SubKey, "IFEOManage_Remark"); string RunMethodString = (string)GetValue(SubKey, "IFEOManage_RunMethod"); if (RunMethodString != "") { TempIFEO.RunMethod = (RunMethod)Enum.Parse(TempIFEO.RunMethod.GetType(), RunMethodString); } _FormatDebuggerStringAndUpdate(TempIFEO); Items.Add(TempIFEO); Log.WriteLine("Load " + keyName + " successfully: " + TempIFEO.ToString()); } else { //Log.WriteLine(keyName + " is not a vaild key."); } } else { Log.WriteLine("Error when loading Sub Key(" + keyName + ")"); Log.MessageBoxError((string)Application.Current.FindResource("cfmOpenSubKeyError") + "\n" + keyName); } } } else { Log.WriteLine("Cannot open registry"); Log.MessageBoxError((string)Application.Current.FindResource("cfmCannotOpenRegistry")); return false; } return true; }