public void DesactivarPlugin(string arch) { PluginStatus p = getPlugin(arch); if (p != null) { p.Plugin.Terminate(); p.Activado = false; } }
public void ActivarPlugin(string arch) { PluginStatus p = getPlugin(arch); if (p != null) { p.Plugin.Initialize(_parent); p.Activado = true; } }
public void CargarPlugins(string folder) { try { string[] files = Directory.GetFiles(folder, "*.dll"); foreach (string file in files) { try { Assembly assembly = Assembly.LoadFile(file); foreach (Type type in assembly.GetTypes()) { if (!type.IsClass || type.IsNotPublic) { continue; } Type[] interfaces = type.GetInterfaces(); if (((IList)interfaces).Contains(typeof(IPlugin))) { PluginStatus pl; object obj = Activator.CreateInstance(type); var t = (IPlugin)obj; // agregar if (_pluginsActivos.Contains(file)) { t.Initialize(_parent); pl = new PluginStatus(t, file, true); //visible? t.GetButton().Visible = PluginsVisibles.Contains(file); } else { pl = new PluginStatus(t, file, false); } plugins.Add(pl); } } } catch (Exception e) { Log.ShowAndLog( new Exception("El Plugin " + file + " Ha reportado el siguiente error:\n" + e.Message)); } } } catch (DirectoryNotFoundException) { return; } catch (Exception ex) { // error cargando plugins Log.ShowAndLog(ex); } }
public void MostrarPlugin(String arch, bool ver) { PluginStatus p = getPlugin(arch); if (p != null && p.Activado) { if (ver) { PluginsVisibles.Add(arch); p.Plugin.GetButton().Visible = true; } else { PluginsVisibles.Remove(arch); p.Plugin.GetButton().Visible = false; } } }