private void MainWindow_Load(object sender, EventArgs e) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; var menuHandle = GetSystemMenu(Handle, false); InsertMenu(menuHandle, 0, MfByposition | MfSeparator, 0, string.Empty); // <-- Add a menu seperator InsertMenu(menuHandle, 0, MfByposition, About, "About"); //_backgroundWorker.RunWorkerAsync(); foreach (var mcu in _flasher.GetMcuList()) { mcuBox.Items.Add(mcu); } if (Settings.Default.hexFileCollection != null) { filepathBox.Items.AddRange(Settings.Default.hexFileCollection.ToArray()); } _printer.Print($"QMK Toolbox {Application.ProductVersion} (https://qmk.fm/toolbox)", MessageType.Info); _printer.PrintResponse("Supported bootloaders:\n", MessageType.Info); _printer.PrintResponse(" - Atmel/LUFA/QMK DFU via dfu-programmer (http://dfu-programmer.github.io/)\n", MessageType.Info); _printer.PrintResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info); _printer.PrintResponse(" - Halfkay (Teensy, Ergodox EZ) via Teensy Loader (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info); _printer.PrintResponse(" - ARM DFU (STM32, APM32, Kiibohd, STM32duino) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); _printer.PrintResponse(" - Atmel SAM-BA (Massdrop) via Massdrop Loader (https://github.com/massdrop/mdloader)\n", MessageType.Info); _printer.PrintResponse(" - BootloadHID (Atmel, PS2AVRGB) via bootloadHID (https://www.obdev.at/products/vusb/bootloadhid.html)\n", MessageType.Info); _printer.PrintResponse("Supported ISP flashers:\n", MessageType.Info); _printer.PrintResponse(" - USBTiny (AVR Pocket)\n", MessageType.Info); _printer.PrintResponse(" - AVRISP (Arduino ISP)\n", MessageType.Info); _printer.PrintResponse(" - USBasp (AVR ISP)\n", MessageType.Info); ManagementObjectCollection collection; using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE 'USB%'")) collection = searcher.Get(); _usb.DetectBootloaderFromCollection(collection); UpdateHidDevices(false); if (_filePassedIn != string.Empty) { SetFilePath(_filePassedIn); } LoadKeyboardList(); }
private void MainWindow_Load(object sender, EventArgs e) { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; var menuHandle = GetSystemMenu(Handle, false); InsertMenu(menuHandle, 0, MfByposition | MfSeparator, 0, string.Empty); // <-- Add a menu seperator InsertMenu(menuHandle, 0, MfByposition, About, "About"); //_backgroundWorker.RunWorkerAsync(); foreach (var mcu in _flasher.GetMcuList()) { mcuBox.Items.Add(mcu); } if (mcuBox.SelectedIndex == -1) { mcuBox.SelectedIndex = 0; } if (Settings.Default.hexFileCollection != null) { filepathBox.Items.AddRange(Settings.Default.hexFileCollection.ToArray()); } logTextBox.Font = new Font(FontFamily.GenericMonospace, 8); _printer.Print("QMK Toolbox (https://qmk.fm/toolbox)", MessageType.Info); _printer.PrintResponse("Supporting following bootloaders:\n", MessageType.Info); _printer.PrintResponse(" - DFU (Atmel, LUFA) via dfu-programmer (http://dfu-programmer.github.io/)\n", MessageType.Info); _printer.PrintResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info); _printer.PrintResponse(" - Halfkay (Teensy, Ergodox EZ) via teensy_loader_cli (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info); _printer.PrintResponse(" - STM32 (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); _printer.PrintResponse(" - Kiibohd (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); _printer.PrintResponse(" - BootloadHID (Atmel, ps2avrGB, CA66) via bootloadHID (https://www.obdev.at/products/vusb/bootloadhid.html)\n", MessageType.Info); _printer.PrintResponse(" - Atmel SAM-BA via mdloader (https://github.com/patrickmt/mdloader)\n", MessageType.Info); _printer.PrintResponse("And the following ISP flasher protocols:\n", MessageType.Info); _printer.PrintResponse(" - USBTiny (AVR Pocket)\n", MessageType.Info); _printer.PrintResponse(" - AVRISP (Arduino ISP)\n", MessageType.Info); var devices = new List <UsbDeviceInfo>(); ManagementObjectCollection collection; using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity where DeviceID Like ""USB%""")) collection = searcher.Get(); _usb.DetectBootloaderFromCollection(collection); UpdateHidDevices(false); UpdateHidList(); if (_filePassedIn != string.Empty) { SetFilePath(_filePassedIn); } LoadKeyboardList(); LoadKeymapList(); }
private static void Main(string[] args) { if (Mutex.WaitOne(TimeSpan.Zero, true) && args.Length > 0) { AttachConsole(AttachParentProcess); var printer = new Printing(); if (args[0].Equals("list")) { var flasher = new Flashing(printer); var usb = new Usb(flasher, printer); flasher.Usb = usb; ManagementObjectCollection collection; using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE ""USB%""")) collection = searcher.Get(); usb.DetectBootloaderFromCollection(collection); FreeConsole(); Environment.Exit(0); } if (args[0].Equals("flash")) { var flasher = new Flashing(printer); var usb = new Usb(flasher, printer); flasher.Usb = usb; ManagementObjectCollection collection; using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE ""USB%""")) collection = searcher.Get(); usb.DetectBootloaderFromCollection(collection); if (usb.AreDevicesAvailable()) { var mcu = args[1]; var filepath = args[2]; printer.Print("Attempting to flash, please don't remove device", MessageType.Bootloader); flasher.Flash(mcu, filepath); FreeConsole(); Environment.Exit(0); } else { printer.Print("There are no devices available", MessageType.Error); FreeConsole(); Environment.Exit(1); } } if (args[0].Equals("help")) { printer.Print("QMK Toolbox (http://qmk.fm/toolbox)", MessageType.Info); printer.PrintResponse("Supported bootloaders:\n", MessageType.Info); printer.PrintResponse(" - Atmel/LUFA/QMK DFU via dfu-programmer (http://dfu-programmer.github.io/)\n", MessageType.Info); printer.PrintResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info); printer.PrintResponse(" - Halfkay (Teensy, Ergodox EZ) via Teensy Loader (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info); printer.PrintResponse(" - ARM DFU (STM32, Kiibohd) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info); printer.PrintResponse(" - Atmel SAM-BA (Massdrop) via Massdrop Loader (https://github.com/massdrop/mdloader)\n", MessageType.Info); printer.PrintResponse(" - BootloadHID (Atmel, PS2AVRGB) via bootloadHID (https://www.obdev.at/products/vusb/bootloadhid.html)\n", MessageType.Info); printer.PrintResponse("Supported ISP flashers:\n", MessageType.Info); printer.PrintResponse(" - USBTiny (AVR Pocket)\n", MessageType.Info); printer.PrintResponse(" - AVRISP (Arduino ISP)\n", MessageType.Info); printer.PrintResponse(" - USBasp (AVR ISP)\n", MessageType.Info); printer.PrintResponse("usage: qmk_toolbox.exe <mcu> <filepath>", MessageType.Info); FreeConsole(); Environment.Exit(0); } printer.Print("Command not found - use \"help\" for all commands", MessageType.Error); FreeConsole(); Environment.Exit(1); } else { if (Mutex.WaitOne(TimeSpan.Zero, true)) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(args.Length == 0 ? new MainWindow(string.Empty) : new MainWindow(args[0])); Mutex.ReleaseMutex(); } else { // send our Win32 message to make the currently running instance // jump on top of all the other windows if (args.Length > 0) { using (var sw = new StreamWriter(Path.Combine(Path.GetTempPath(), "qmk_toolbox/file_passed_in.txt"))) { sw.WriteLine(args[0]); } } NativeMethods.PostMessage( (IntPtr)NativeMethods.HwndBroadcast, NativeMethods.WmShowme, IntPtr.Zero, IntPtr.Zero); } } }