public void cmClassEditor_Click(object sender, EventArgs e)
        {
            if (dgvData.SelectedRows.Count < 1)
            {
                SimpleMessage.ShowInfo("Please select assembly to edit.");
                return;
            }

            try
            {
                frmClassEdit frm = new frmClassEdit(
                    new ClassEditParams()
                {
                    Host             = this,
                    Rows             = PathUtils.GetFullFileNames(dgvData.SelectedRows, treeView1.SelectedNode.FullPath),
                    SourceDir        = treeView1.SelectedNode.FullPath,
                    ObjectType       = ObjectTypes.All,
                    ShowStaticOnly   = false,
                    ShowSelectButton = false
                }
                    );
                frm.Show();
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
        private void cmDeobf_Click(object sender, EventArgs e)
        {
            if (dgvData.SelectedRows.Count < 1)
            {
                SimpleMessage.ShowInfo("Please select assembly.");
                return;
            }

            try
            {
                if (_frmDeobf == null)
                {
                    _frmDeobf = new frmDeobf(this, PathUtils.GetFullFileNames(dgvData.SelectedRows, treeView1.SelectedNode.FullPath), treeView1.SelectedNode.FullPath);
                }
                else
                {
                    _frmDeobf.InitForm(this, PathUtils.GetFullFileNames(dgvData.SelectedRows, treeView1.SelectedNode.FullPath), treeView1.SelectedNode.FullPath);
                }

                _frmDeobf.ShowDialog();

                TreeViewHandler.RefreshNode(treeView1.SelectedNode);
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
        private void cmFolderDasm_Click(object sender, EventArgs e)
        {
            try
            {
                frmDasm frm = new frmDasm(this, PathUtils.GetFullFileNames(dgvData.Rows, treeView1.SelectedNode.FullPath), treeView1.SelectedNode.FullPath);
                frm.ShowDialog();

                TreeViewHandler.RefreshNode(treeView1.SelectedNode, true);
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
        private void cmVerify_Click(object sender, EventArgs e)
        {
            if (dgvData.SelectedRows.Count < 1)
            {
                SimpleMessage.ShowInfo("Please select assembly to verify.");
                return;
            }

            try
            {
                frmVerify frm = new frmVerify(this, PathUtils.GetFullFileNames(dgvData.SelectedRows, treeView1.SelectedNode.FullPath), treeView1.SelectedNode.FullPath);
                frm.ShowDialog();
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
        private void cmFolderAsm_Click(object sender, EventArgs e)
        {
            try
            {
                string        path  = treeView1.SelectedNode.FullPath;
                DirectoryInfo di    = new DirectoryInfo(path);
                FileInfo[]    files = di.GetFiles("*.il", SearchOption.AllDirectories);

                frmAsm frm = new frmAsm(this, PathUtils.GetFullFileNames(files, path), path);
                frm.ShowDialog();

                TreeViewHandler.RefreshNode(treeView1.SelectedNode);
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
        private void cmAsm_Click(object sender, EventArgs e)
        {
            if (dgvData.SelectedRows.Count < 1)
            {
                SimpleMessage.ShowInfo("Please select IL file.");
                return;
            }

            try
            {
                frmAsm frm = new frmAsm(this, PathUtils.GetFullFileNames(dgvData.SelectedRows, treeView1.SelectedNode.FullPath), treeView1.SelectedNode.FullPath);
                frm.ShowDialog();

                TreeViewHandler.RefreshNode(treeView1.SelectedNode);
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
        }
예제 #7
0
        void pluginMenu_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem mi     = (ToolStripMenuItem)sender;
            IMainPlugin       plugin = mi.Tag as IMainPlugin;

            if (plugin == null)
            {
                return;
            }

            //prepare parameters
            string sourceDir = _form.TreeView.SelectedNode.FullPath;

            string[] rows = PathUtils.GetFullFileNames(_form.AssemblyDataGrid.SelectedRows, sourceDir);

            //run plugin
            bool resolveDirAdded = false;

            try
            {
                resolveDirAdded = _form.AddAssemblyResolveDir(PluginUtils.PluginDir);
                Config.AddRecentPlugin(plugin.PluginInfo.Title);
                PluginArgument pa = new PluginArgument(_form, rows, sourceDir);
                PluginReturns  pr = plugin.Run(pa);
                if (pr == PluginReturns.Refresh)
                {
                    _form.TreeViewHandler.RefreshNode(_form.TreeView.SelectedNode, true);
                }
            }
            catch (Exception ex)
            {
                SimpleMessage.ShowException(ex);
            }
            finally
            {
                if (resolveDirAdded)
                {
                    _form.RemoveAssemblyResolveDir(PluginUtils.PluginDir);
                }
            }

            //dynamic adjust menu position
            int startIndex = GetPluginMenuStartIndex();

            if (cmAssembly.Items.ContainsKey(mi.Name))
            {
                int index = cmAssembly.Items.IndexOf(mi);
                if (startIndex != index)
                {
                    cmAssembly.Items.RemoveAt(index);
                    cmAssembly.Items.Insert(startIndex, mi);
                }
            }
            else
            {
                cmMore.DropDownItems.Remove(mi);
                ToolStripMenuItem miLast = (ToolStripMenuItem)cmAssembly.Items[GetPluginMenuEndIndex()];
                cmAssembly.Items.Remove(miLast);
                cmAssembly.Items.Insert(startIndex, mi);
                cmMore.DropDownItems.Insert(0, miLast);
            }
        }