public void Startup() { _telemetryData = new TelemetryData(); _timingData = new TimingData(); _analysisData = new AnalysisManager(); lsvPlugins.Items.Clear(); _plugins = new Dictionary <string, IGame>(); ICollection <IGame> plugins = PluginLoader <IGame> .LoadPlugins("Plugins"); if (plugins.Count > 0) { foreach (var item in plugins) { _plugins.Add(item.Name, item); string[] lvText = new string[4]; lvText[0] = ""; lvText[1] = item.DisplayName; lvText[2] = item.Version; ListViewItem lvItem = new ListViewItem(lvText); Bitmap pluginIcon = item.Icon; if (pluginIcon != null) { imageListPlugins.Images.Add(item.Name, pluginIcon); lvItem.ImageKey = item.Name; } else { lvItem.ImageKey = "missing"; } lsvPlugins.Items.Add(lvItem); } _processMonitor = new ProcessMonitor(_plugins); _processMonitor.GameLoadedEvent += new ProcessMonitor.GameLoaded(GameLoaded); _processMonitor.GameClosedEvent += new ProcessMonitor.GameClosed(GameClosed); _processMonitor.StartProcessMonitor(); _ipAddress = NetHelpers.GetLocalIpAddress(); StartWebServer(); } else { MessageBox.Show("No Plugins Were Found, Application will now exit", "Plugin Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } }