Exemple #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);
            }
        }
Exemple #2
0
        private void GenerateRegFile(TreeNode node)
        {
            foreach (TreeNode item in node.Nodes)
            {
                if (item.Tag is TreeNode)
                {
                    try
                    {
                        INIKeyValuePairBase tempVal = new INIKeyValuePairBase();
                        tempVal.Parse(item.Text);
                        string regFileName = string.Format("{0}\\{1}.reg", _defaultSettings, tempVal.IniKey);

                        string dirName = Path.GetDirectoryName(regFileName);
                        if (!Directory.Exists(dirName))
                        {
                            Directory.CreateDirectory(dirName);
                        }

                        if (File.Exists(regFileName))
                        {
                            try { File.Delete(regFileName); } catch (Exception) { }
                        }

                        using (var writer = new StreamWriter(regFileName, false, Encoding.Unicode))
                        {
                            Parser.RegFileExport parser = new Parser.RegFileExport();

                            parser.GenerateRegTextFile(item.Tag as TreeNode, writer);
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorLog.Inst.ShowError("Reg file generation error : {0}", ex.Message);
                    }
                }
            }
        }