protected override void OnLoad(EventArgs e) { base.OnLoad(e); string path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); path = Path.Combine(path, "modules"); messager = new Messager(notifyIcon1); if (Directory.Exists(path) == false) { Directory.CreateDirectory(path); } else { moduleManager = new ModuleManager(); var stringWriter = new StringWriter(); moduleManager.Initialize(Directory.GetFiles(path, "*.dll", SearchOption.TopDirectoryOnly), stringWriter); moduleManagerLog = stringWriter.ToString(); var extensionsMenu = new ToolStripMenuItem("Extensions"); extensionsMenu.Click += (ss, ee) => { if (frmModules != null) { return; } frmModules = new frmModules(moduleManagerLog, moduleManager); frmModules.ShowDialog(this); frmModules = null; moduleManager.SaveConfiguration(); }; ctxNotificationMenu.Items.Insert(0, new ToolStripSeparator()); ctxNotificationMenu.Items.Insert(0, extensionsMenu); } Visible = false; devices = HID.GetDevices(0x0583, 0x2060).ToArray(); if (devices.Length == 0) { MessageBox.Show("Impossible to detect the controller device.", "Device Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } if (devices.All(d => d.Start()) == false) { MessageBox.Show("Impossible to start the controller device.", "Device Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); return; } RunDevices(); }