示例#1
0
        private ToolStripMenuItem CreateOpenShellMenuItem(ToolStripMenuItem toolStripMenuItem, string menuType, string targetDirectory)
        {
            var openShell = new OpenShell();

            if (OpenShell.AppExists("powershell.exe"))
            {
                var openPowershellInsideMenuItem = openShell.CreateToolStripMenuItem(menuType, targetDirectory, "powershell.exe", false);
                toolStripMenuItem.DropDownItems.Add(openPowershellInsideMenuItem);

                var openPowershellInsideElevatedMenuItem = openShell.CreateToolStripMenuItem(menuType, targetDirectory, "powershell.exe", true);
                toolStripMenuItem.DropDownItems.Add(openPowershellInsideElevatedMenuItem);
            }

            if (OpenShell.AppExists("cmd.exe"))
            {
                var openCmdInsideMenuItem = openShell.CreateToolStripMenuItem(menuType, targetDirectory, "cmd.exe", false);
                toolStripMenuItem.DropDownItems.Add(openCmdInsideMenuItem);

                var openCmdInsideElevatedMenuItem = openShell.CreateToolStripMenuItem(menuType, targetDirectory, "cmd.exe", true);
                toolStripMenuItem.DropDownItems.Add(openCmdInsideElevatedMenuItem);
            }

            return(toolStripMenuItem);
        }
        public void selectCommand(int command, List <RaspberryPi> pis)
        {
            Command c;

            switch (command)
            {
            case 1:
                foreach (RaspberryPi pi in pis)
                {
                    c = new Status(pi);
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 2:
                foreach (RaspberryPi pi in pis)
                {
                    c = new Reboot(pi);
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 3:
                foreach (RaspberryPi pi in pis)
                {
                    c = new Update(pi);
                    // Send to tasks pool, then issueCommand
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 4:
                foreach (RaspberryPi pi in pis)
                {
                    Console.WriteLine();
                    Console.WriteLine(@"Note: paths in Windows use backslashes for example: S:\ENS\Labs\Raspberry Pi");
                    Console.WriteLine("       paths in Linux use forward slashes for example: /home/pi/scripts/start.py\n");
                    Console.WriteLine("Please type the full path to the file you would like to transfer.");
                    string local = Console.ReadLine();
                    Console.WriteLine("Please type the full path to where you would like the file transferred to.");
                    string remote = Console.ReadLine();
                    c = new Transfer(pi, local, remote);
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 5:
                foreach (RaspberryPi pi in pis)
                {
                    Console.WriteLine("Which package would you like to install? Please make sure it is the correct linux package name");
                    string package = Console.ReadLine();
                    c = new Install(pi, package);
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 6:
                foreach (RaspberryPi pi in pis)
                {
                    c = new Setup(pi);
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;

            case 7:

                foreach (RaspberryPi pi in pis)
                {
                    c = new OpenShell(pi.getHostname());
                    Task task = new Task(c);
                    threadPool.addTask(task);
                }
                break;
            }
        }