public void SaveTree(TreeViewEx srcFileTree, TreeViewEx srcRegTree, TreeViewEx destFileTree, TreeViewEx destRegTree, TreeViewEx appInfoTree, TreeViewEx launchTree) { foreach (TreeNode item in destFileTree.Nodes) { if (item.Text.StartsWith("[")) { Launch.SaveNode(item); } else if (item.Text == "App") { foreach (TreeNode appNode in item.Nodes) { if (appNode.Text != "AppInfo") { SaveFileNode(appNode); } } } } List <string> listOfComFile = new List <string>(); foreach (TreeNode item in destRegTree.Nodes) { Launch.SaveNode(item); if (item.Text == LaunchINI.LaunchINI.RegistryKeys_Tag && IsGenerateRegFile) { GenerateRegFile(item); } else if (item.Text == LaunchINI.LaunchINI.RegistrationFreeCOM_Tag) { foreach (TreeNode subItem in item.Nodes) { INIKeyValuePairBase tempVal = new INIKeyValuePairBase(); tempVal.FullValue = subItem.Text; listOfComFile.Add(tempVal.IniValue); } } } Launch.Save(); AppInfo.Save(); GenerateIcons(); if (listOfComFile.Count > 0 && IsGenerateManifest) { List <string> tempAllFiles = new List <string>(); tempAllFiles.AddRange(Directory.GetFiles(RootFolder, "*.dll", SearchOption.AllDirectories)); tempAllFiles.AddRange(Directory.GetFiles(RootFolder, "*.ocx", SearchOption.AllDirectories)); tempAllFiles.AddRange(Directory.GetFiles(RootFolder, "*.exe", SearchOption.AllDirectories)); Model.COM.ComRegInfo.Inst.Clear(); Model.COM.ComRegInfo.Inst.ParseComInfo(srcRegTree); Model.COM.ComRegInfo.Inst.UpdateTypeInfo(listOfComFile, tempAllFiles); GenerateManifestInternal(Model.ExeFileNameListStringConverter.ExeFileNameList.ToList(), listOfComFile, tempAllFiles); } }