private void frmMain_Load(object sender, EventArgs e) { Global.SuppressErrors = true; Plugin[] temp_plugins = Plugin.Load(); Global.SuppressErrors = false; foreach (Plugin p in temp_plugins) { Plugin.vActivationState state = p.Activate(); switch (state) { case Plugin.vActivationState.Activated: // ok Plugin.Plugins.Add(p); break; case Plugin.vActivationState.Error: MessageBox.Show("Could not activate plugin: " + p.FriendlyName + "\n\nReason: See Error log", "Error"); break; case Plugin.vActivationState.NameConflict: MessageBox.Show("Could not activate plugin: " + p.FriendlyName + "\n\nReason: Name Conflict", "Error"); break; default: break; } } foreach (Plugin plug in Plugin.Plugins) { cboPlugins.Items.Add(plug); } cboPlugins_SelectedIndexChanged(null, null); }
private void Load_Plugins() { ContextMenu PluginMenu = new ContextMenu(); Plugin.LoadSate(); Plugin[] temp_plugins = Plugin.Load(); Plugin.Plugins.Add(new Plugin(new GCPlugin())); foreach (Plugin p in temp_plugins) { if (p.Signature != Plugin.vSignature.Verified) { if (!p.AlwaysAllowed) { frmPluginSecurity f = new frmPluginSecurity(); f.setPlugin(p); DialogResult d = f.ShowDialog(this); switch (d) { case DialogResult.Abort: // do not load asm continue; case DialogResult.OK: // temp allow // break; case DialogResult.Yes: // always allow p.AlwaysAllowed = true; break; } } } Plugin.vActivationState state = p.Activate(); switch (state) { case Plugin.vActivationState.Activated: // ok Plugin.Plugins.Add(p); break; case Plugin.vActivationState.Error: MessageBox.Show("Could not activate plugin: " + p.FriendlyName + "\n\nReason: See Error log", "Error"); break; case Plugin.vActivationState.NameConflict: MessageBox.Show("Could not activate plugin: " + p.FriendlyName + "\n\nReason: Name Conflict", "Error"); break; default: break; } } foreach (Plugin plugin in Plugin.Plugins) { if (plugin != null) { ListViewItem li = new ListViewItem(); li.Text = plugin.FriendlyName; li.Tag = plugin; if (plugin.getCommands() != null && plugin.getCommands().Length > 0) { MenuItem PluginRootMenu = PluginMenu.MenuItems.Add(plugin.FriendlyName); gcCommand[] cmds = plugin.getCommands(); if (cmds != null) { for (int k = 0; k < cmds.Length; k++) { PluginRootMenu.MenuItems.Add("[" + plugin.ShortName + "." + cmds[k].CommandKey + "]", new EventHandler(CommandForm.Menu_Click)); } PluginRootMenu.MenuItems.Add("-"); MenuItem m = PluginRootMenu.MenuItems.Add("Show " + plugin.FriendlyName + " Help", new EventHandler(CommandForm.Menu_Help_Click)); m.Tag = cmds; } } this.lsvPlugins.Items.Add(li); } } CommandForm.setMenu(PluginMenu); }