Beispiel #1
0
        private void btnGo_Click(object sender, EventArgs e)
        {
            // open file
            //   MSI.Package mpkg = new MSI.Package(msifile);
            // list tables and records

            // WindowsInstaller.View view = database.OpenView("SELECT * FROM _table_name);
            MSI.Database mdb = new MSI.Database(msifile, MSI.Database.OpenMode.ReadOnly);
            mdb.Export("registry", @"C:\Program Files\Educational Assessments Corporation\EACZipInstallerMaker\CurrentMsi\", "RegExport.txt");
            MSI.View mdbv = mdb.OpenView("SELECT * FROM Registry");
            mdbv.Execute();
            MSI.Record rmdb  = mdbv.Fetch();
            int        total = rmdb.FieldCount;

            while (rmdb != null)
            {
                for (int i = 1; i <= total; i++)
                {
                    if (rmdb.GetString(i) != null)
                    {
                        string temp = rmdb.GetString(i);
                        //  temp = temp.Replace(txtFind.Text, txtReplace.Text);
                        // record.set_StringData(i, temp);
                        // view.Modify(MsiViewModify.msiViewModifyReplace, record);
                        tbMemo.AppendText(temp);
                    }
                }
                rmdb = mdbv.Fetch();
            }
            // edit record
            // save changes and file
        }
Beispiel #2
0
        private void BuildFeatures()
        {
            ArrayList roots = new ArrayList();
            Hashtable tree  = new Hashtable();

            using (MSI.View view = Application.ExecView(m_project.Database,
                                                        "SELECT `Feature`,`Feature_Parent` FROM `Feature` " +
                                                        "ORDER BY `Feature_Parent`"))
            {
                for (MSI.Record rec = view.Fetch(); rec != null; rec = view.Fetch())
                {
                    if (rec.IsNull(2))
                    {
                        roots.Add(rec.GetString(1));
                    }
                    else
                    {
                        string parent = rec.GetString(2);
                        if (!tree.ContainsKey(parent))
                        {
                            tree[parent] = new ArrayList();
                        }
                        (tree[parent] as ArrayList).Add(rec.GetString(1));
                    }
                    rec.Dispose();
                }
            }
            roots.Sort();

            rootFeatureTreeView.Nodes.Clear();
            for (int i = 0; i < roots.Count; i++)
            {
                string   feature = roots[i] as string;
                TreeNode root    = new TreeNode(feature);
                root.Tag = "R" + i.ToString();
                rootFeatureTreeView.Nodes.Add(root);
                AddFeatures(tree, rootFeatureTreeView,
                            root.Tag as string, feature);
            }
            rootFeatureTreeView.SelectedNode = rootFeatureTreeView.Nodes[0];
        }