Exemplo n.º 1
0
        private void LoadAllProgramToList()
        {
            //清空进程imageList和ProcessView
            processImageList.Images.Clear();
            ProcessView.Items.Clear();

            foreach (int i in GlobalVariable.Started_PID)
            {
                ListViewItem lvi = new ListViewItem();

                lvi.Text = Convert.ToString(i);

                //获取对应PID的启动目录
                Process pro;
                string  proPathName, proArgument;
                try
                {
                    pro         = Process.GetProcessById(i);//获得对应PID的进程
                    proPathName = pro.MainModule.FileName.ToString();
                    proArgument = ProcessExtensions.GetCommandLineArgs(pro);
                }
                catch
                {
                    continue;
                }

                string[] args   = CommandLineExtensions.ConvertCommandLineToArgs(proArgument);
                string   sumArg = "";
                for (int a = 1; a < args.Length; a++)
                {
                    sumArg += args[a] + " ";
                }

                lvi.SubItems.Add(proPathName);
                lvi.SubItems.Add(sumArg);

                if (GlobalVariable.Hid_PID.Contains(i))
                {
                    lvi.SubItems.Add("隐藏");
                }
                else
                {
                    lvi.SubItems.Add("正常");
                }

                processImageList.Images.Add(Convert.ToString(i), IconHelper.GetFileIcon(proPathName, true));
                lvi.ImageIndex = processImageList.Images.Count - 1;     //通过与imageList绑定,显示imageList中第i项图标

                ProcessView.Items.Add(lvi);
            }

            //更新新的Started_PID表
            GlobalVariable.Started_PID.Clear();
            foreach (ListViewItem i in ProcessView.Items)
            {
                GlobalVariable.Started_PID.Add(Convert.ToInt32(i.Text));
            }
        }
Exemplo n.º 2
0
        public void WriteHelp(OptionSet defaultSet)
        {
            Console.WriteLine(@"Usage:");
            Console.WriteLine(@"Pretzel.exe command [options]");
            Console.WriteLine();
            defaultSet.WriteOptionDescriptions(Console.Out);
            Console.WriteLine();

            foreach (var command in commandMap)
            {
                Console.WriteLine(@"Command: " + command.Key);
                command.Value.WriteHelp(Console.Out);
                var extraArgs = CommandLineExtensions.SelectMany(e => e.Value.GetArguments(command.Key)).ToArray();
                if (extraArgs.Any())
                {
                    Parameters.Value.WriteOptions(Console.Out, extraArgs);
                }
                Console.WriteLine();
            }
        }
Exemplo n.º 3
0
        private static void InteractiveMode(string input)
        {
            ReadLineConfiguration();
            while (Environment.ExitCode != 1)
            {
                input = ReadLine.Read("BasicConsole>");

                switch (input)
                {
                case "random":
                    Console.WriteLine("We random");
                    break;

                default:
                    var app     = new CommandLineApplication <RootCommand>();
                    var command = CommandLineExtensions.SplitCommandLine(input);
                    ArgumentExecutor(app, command.ToArray());

                    break;
                }
            }
        }
        public void Run()
        {
            try
            {
                processSelectWindow.Invoke((EventHandler) delegate
                {
                    //清空进程imageList和ProcessView
                    processImageList.Images.Clear();
                    processView.Items.Clear();
                    loadProgressBar.Value = 0;

                    statusLabel.Text = "正在加载进程列表……";
                });

                //获取所有进程
                Process[] pro       = Process.GetProcesses();
                int       max_count = pro.Count();
                int       progress  = 0;

                processSelectWindow.Invoke((EventHandler) delegate
                {
                    loadProgressBar.Maximum = max_count;
                });
                foreach (Process item in pro)
                {
                    progress += 1;
                    ListViewItem lvi = new ListViewItem
                    {
                        Text = item.ProcessName
                    };
                    //获取对应PID的启动目录
                    string proPathName, proArgument;
                    proPathName = GetProcessFilename(item);
                    proArgument = ProcessExtensions.GetCommandLineArgs(item);
                    string[] args   = CommandLineExtensions.ConvertCommandLineToArgs(proArgument);
                    string   sumArg = "";
                    for (int a = 1; a < args.Length; a++)
                    {
                        sumArg += args[a] + " ";
                    }
                    lvi.SubItems.Add(Convert.ToString(item.Id));
                    lvi.SubItems.Add(proPathName);
                    lvi.SubItems.Add(sumArg);

                    processSelectWindow.Invoke((EventHandler) delegate
                    {
                        processImageList.Images.Add(Convert.ToString(item.Id), IconHelper.GetFileIcon(proPathName, true));
                        lvi.ImageIndex = processImageList.Images.Count - 1;     //通过与imageList绑定,显示imageList中第i项图标

                        processView.Items.Add(lvi);
                        statusLabel.Text      = $@"正在加载进程列表……({progress}/{max_count})";
                        loadProgressBar.Value = progress;
                    });
                }
                processSelectWindow.Invoke((EventHandler) delegate
                {
                    statusLabel.Text = $@"进程列表加载完毕,共加载了{progress}个进程!";
                });
            }
            catch
            {
            }
        }
Exemplo n.º 5
0
        /*
         *      truck CustomizationCameras --FOV:40 "D:\Games\SnowRunner_backs\mods\.staging\initial-pak\[media]\classes\trucks\ank_mk38.xml"
         */

        public static int Main(string[] args)
        {
            var root = new RootCommand(typeof(Program).Assembly.GetCustomAttribute <AssemblyTitleAttribute> ().Title);

            root.AddLicenseOption();


            var cmdTruck = new Command("truck", "Trucks configuration");

            root.Add(cmdTruck);

            var cmdTruckCustomizationCameras = new Command("CustomizationCameras");

            cmdTruckCustomizationCameras.AddOption(new Option <float?> ("--FOV"));
            cmdTruckCustomizationCameras.AddOption(new Option <float?> ("--MaxZoom"));
            var targetXmlWildcardsArgument = new Argument <IEnumerable <FileInfo> > ("targetXmls", CommandLineExtensions.ParseWildcards)
            {
                Description = "Truck XML file to modify (wildcards supported)"
            }.ExistingOrWildcardOnly();

            cmdTruckCustomizationCameras.AddArgument(targetXmlWildcardsArgument);
            cmdTruckCustomizationCameras.Handler = CommandHandler.Create <IEnumerable <FileInfo>, float?, float?> (DoTruckCustomizationCameras);
            cmdTruck.Add(cmdTruckCustomizationCameras);


            var cmdTruckCraneSocket = new Command("CraneSocket");

            cmdTruck.Add(cmdTruckCraneSocket);

            var cmdTruckCraneSocketAdd = new Command("add");

            cmdTruckCraneSocket.Add(cmdTruckCraneSocketAdd);

            var cmdTruckCraneSocketAddTopCentral = new Command("top-central");
            var targetXmlArgument = new Argument <FileInfo> ("targetXml").ExistingOnly();

            cmdTruckCraneSocketAddTopCentral.AddArgument(targetXmlArgument);
            cmdTruckCraneSocketAddTopCentral.Handler = CommandHandler.Create <FileInfo> (DoTruckCraneSocketAddTopCentral);
            cmdTruckCraneSocketAdd.Add(cmdTruckCraneSocketAddTopCentral);


            var cmdTruckExtents = new Command("extents");

            cmdTruckExtents.AddArgument(targetXmlArgument);
            cmdTruckExtents.Handler = CommandHandler.Create <FileInfo> (DoTruckExtents);
            cmdTruck.Add(cmdTruckExtents);


            var cmdExtras = new Command("extras", "Extra configuration");

            root.Add(cmdExtras);

            var cmdExtrasRename = new Command("rename", "Rename game objects");

            cmdExtras.Add(cmdExtrasRename);

            var cmdExtrasRenameTires = new Command("tires", "Rename tires");
            var languageOption       = new Option <GameLanguage> ("--language")
            {
                Required = true
            };

            cmdExtrasRenameTires.AddOption(languageOption);
            var directoryArgument = new Argument <DirectoryInfo> ("directory", "Path to the directory with mixed contents of initial.pak and initial.pak\\initial.cache_block").ExistingOnly();

            cmdExtrasRenameTires.AddArgument(directoryArgument);
            cmdExtrasRenameTires.Handler = CommandHandler.Create <DirectoryInfo, GameLanguage> (ExtrasRenamer.RenameTires);
            cmdExtrasRename.Add(cmdExtrasRenameTires);

            var cmdExtrasRenameTrucks = new Command("trucks", "Rename trucks");

            cmdExtrasRenameTrucks.AddOption(languageOption);
            cmdExtrasRenameTrucks.AddArgument(directoryArgument);
            cmdExtrasRenameTrucks.Handler = CommandHandler.Create <DirectoryInfo, GameLanguage> (ExtrasRenamer.RenameTrucks);
            cmdExtrasRename.Add(cmdExtrasRenameTrucks);

            var cmdExtrasRenameEngines = new Command("engines", "Rename engines");

            cmdExtrasRenameEngines.AddOption(languageOption);
            cmdExtrasRenameEngines.AddArgument(directoryArgument);
            cmdExtrasRenameEngines.Handler = CommandHandler.Create <DirectoryInfo, GameLanguage> (ExtrasRenamer.RenameEngines);
            cmdExtrasRename.Add(cmdExtrasRenameEngines);

            return(root.InvokeWithMiddleware(args, CommandLineExtensions.MakePrintLicenseResourceMiddleware(typeof(Program))));
        }