Exemple #1
0
        static void Main(string[] args)
        {
            if (args.Length == 2 && args[0].Equals("-update-mem", StringComparison.OrdinalIgnoreCase))
            {
                performUpdate(args[1]);
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            bool runAsAdmin = false;

            if (Misc.isRunAsAdministrator())
            {
                runAsAdmin = true;
            }

            loadEmbeddedDlls();

            processUpdate();

            loadMD5Tables();

            string iniPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "installer.ini");

            if (File.Exists(iniPath))
            {
                Installer installer = new Installer();
                if (installer.Run(runAsAdmin))
                {
                    Application.Run(installer);
                }
                if (installer.exitToModder)
                {
                    Application.Run(new MainWindow(runAsAdmin));
                }
            }
            else
            {
                Application.Run(new MainWindow(runAsAdmin));
            }

            unloadEmbeddedDlls();
            Environment.Exit(0);
        }
        static void Main(string[] args)
        {
            if (args.Length > 0 && args[0].Equals("-update-mem", StringComparison.OrdinalIgnoreCase))
            {
                Thread.Sleep(1000);
                try
                {
                    if (args.Length != 2)
                    {
                        throw new Exception();
                    }
                    string baseName = Path.GetFileNameWithoutExtension(args[1]);
                    string fileExe  = baseName.Substring("new-".Length) + ".exe";
                    string filePdb  = baseName.Substring("new-".Length) + ".pdb";
                    if (File.Exists(fileExe))
                    {
                        File.Delete(fileExe);
                    }
                    if (File.Exists(filePdb))
                    {
                        File.Delete(filePdb);
                    }
                    File.Copy(baseName + ".exe", fileExe);
                    File.Copy(baseName + ".pdb", filePdb);

                    Process process = new Process();
                    process.StartInfo.FileName        = fileExe;
                    process.StartInfo.CreateNoWindow  = true;
                    process.StartInfo.UseShellExecute = false;
                    if (!process.Start())
                    {
                        throw new Exception();
                    }

                    Environment.Exit(0);
                }
                catch
                {
                    MessageBox.Show("Failed update MEM!");
                    Environment.Exit(1);
                }
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            bool runAsAdmin = false;

            if (Misc.isRunAsAdministrator())
            {
                runAsAdmin = true;
            }

            loadEmbeddedDlls();


            cleanupPreviousUpdate();
            string filename = prepareForUpdate();

            if (filename != "")
            {
                filename = unpackUpdate(filename);
            }
            if (filename != "")
            {
                Process process = new Process();
                process.StartInfo.FileName        = filename;
                process.StartInfo.Arguments       = "-update-mem " + filename;
                process.StartInfo.CreateNoWindow  = true;
                process.StartInfo.UseShellExecute = false;
                if (process.Start())
                {
                    unloadEmbeddedDlls();
                    Environment.Exit(0);
                }
                MessageBox.Show("Failed start update MEM instance!");
            }

            loadMD5Tables();

            string iniPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "installer.ini");

            if (File.Exists(iniPath))
            {
                Installer installer = new Installer();
                if (installer.Run(runAsAdmin))
                {
                    Application.Run(installer);
                }
                if (installer.exitToModder)
                {
                    Application.Run(new MainWindow(runAsAdmin));
                }
            }
            else
            {
                Application.Run(new MainWindow(runAsAdmin));
            }

            unloadEmbeddedDlls();
            Environment.Exit(0);
        }
        static void Main(string[] args)
        {
            loadEmbeddedDlls();

            if (args.Length == 4)
            {
                AttachConsole(-1);
                string option   = args[0];
                string game     = args[1];
                string inputDir = args[2];
                string outMem   = args[3];
                int    gameId;
                try
                {
                    gameId = int.Parse(game);
                }
                catch
                {
                    gameId = 0;
                }
                if (gameId != 1 && gameId != 2 && gameId != 3)
                {
                    Console.WriteLine("Error: wrong game id!");
                    Environment.Exit(1);
                }
                else
                {
                    if (option.Equals("-convert-to-mem", StringComparison.OrdinalIgnoreCase))
                    {
                        if (!Directory.Exists(inputDir))
                        {
                            Console.WriteLine("Error: intput path not exists: " + inputDir);
                            Environment.Exit(1);
                        }
                        else
                        {
                            Console.WriteLine(Environment.NewLine + Environment.NewLine +
                                              "--- MEM v" + Application.ProductVersion + " command line --- " + Environment.NewLine);
                            if (!CmdLineConverter.ConvertToMEM(gameId, inputDir, outMem))
                            {
                                Environment.Exit(1);
                            }
                        }
                    }
                }
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                bool runAsAdmin = false;

                if (Misc.isRunAsAdministrator())
                {
                    runAsAdmin = true;
                }

                string iniPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "installer.ini");
                if (File.Exists(iniPath))
                {
                    Installer installer = new Installer();
                    if (installer.Run(runAsAdmin))
                    {
                        Application.Run(installer);
                    }
                    if (installer.exitToModder)
                    {
                        Application.Run(new MainWindow(runAsAdmin));
                    }
                }
                else
                {
                    Application.Run(new MainWindow(runAsAdmin));
                }
            }

            unloadEmbeddedDlls();
        }