Пример #1
0
        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);
            }
        }