private void closeToolStripMenuItem_Click(object sender, EventArgs e) { if (alModules.Count > 0) { for (int i = 0; i < alModules.Count; i++) { try { AbstractFOGTrayModule genericModule = (AbstractFOGTrayModule)alModules[i]; genericModule.stop(); } catch { } } } Close(); }
private void loadMenuItems() { alModules = new ArrayList(); if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory)) { String[] files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory); for (int i = 0; i < files.Length; i++) { if (files[i].EndsWith(".dll")) { try { byte[] buffer = File.ReadAllBytes(files[i]); Assembly assemb = Assembly.Load(buffer); if (assemb != null) { Type[] type = assemb.GetTypes(); for (int z = 0; z < type.Length; z++) { if (type[z] != null) { try { Object module = Activator.CreateInstance(type[z]); Assembly abstractA = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + @"AbstractFOGTrayModule.dll"); Type t = abstractA.GetTypes()[0]; if (module.GetType().IsSubclassOf(t)) { alModules.Add(module); } } catch { } } } } } catch { } } } try { System.Threading.Thread.Sleep(2000); } catch { } if (alModules.Count > 0) { for (int i = 0; i < alModules.Count; i++) { try { AbstractFOGTrayModule genericModule = (AbstractFOGTrayModule)alModules[i]; genericModule.start(); menuStrip.Items.Insert(2, genericModule.getMenuSegment()); } catch { } } } else { menuStrip.Items.Insert(2, new ToolStripMenuItem("No Modules Found!")); } } }