Example #1
0
        private static int Main(string[] args)
        {
            var    check     = false;
            var    isRegistr = false;
            var    logo      = true;
            string filePath  = null;

            if (args == null || args.Length == 0)
            {
                ShowCopirite();
                ShowHelp();
                return(-1);
            }

            foreach (var argument in args)
            {
                if (argument.Length < 2)
                {
                    ShowHelp();
                    return(-1);
                }

                if (argument.StartsWith("/"))
                {
                    switch (argument.Substring(1, 1))
                    {
                    case "c":
                        check = true;
                        break;

                    case "r":
                        isRegistr = true;
                        break;

                    case "u":
                        isRegistr = false;
                        break;

                    case "n":
                        logo = false;
                        break;

                    default:
                        ShowHelp();
                        return(-1);
                    }
                }
                else
                {
                    filePath = argument;
                }
            }

            if (logo)
            {
                ShowCopirite();
            }

            if (string.IsNullOrWhiteSpace(filePath))
            {
                ShowHelp();
                return(-1);
            }


            var conRegistration = new ComRegistration();

            try
            {
                if (check)
                {
                    return(conRegistration.CheckClassCOM(filePath) ? 1 : 0);
                }
                if (isRegistr)
                {
                    conRegistration.RegisterCOM(filePath);
                }
                else
                {
                    conRegistration.UnregisterCOM(filePath);
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine($"ERROR - {exception.Message}");
                return(0);
            }
            return(1);
        }
Example #2
0
 private static void Unregister(System.Type t)
 {
     ComRegistration.UnregisterControl(t);
 }
        public static int Main(string[] args)
        {
            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
            Logger.InitUserLog();
            BlueStacks.QuitMultiInstall.QuitMultiInstall.InitExceptionHandlers();
            ServiceController runningSvc = (ServiceController)null;

            if (ProcessUtils.CheckAlreadyRunningAndTakeLock("Global\\BlueStacks_HDQuitMultiInstall_Lockbgp", out BlueStacks.QuitMultiInstall.QuitMultiInstall.s_HDQuitMultiInstaceLock))
            {
                Logger.Info("QuitMultiInstall already running, returning");
                return(0);
            }
            if (args.Length != 0 && args[0] == "-in")
            {
                Logger.Info("quit multi install started with arg : -in...checking for another running version of parent proccess");
                string[] strArray = new string[9]
                {
                    "HD-Agent",
                    "HD-ApkHandler",
                    "HD-Adb",
                    "HD-RunApp",
                    "HD-Updater",
                    "HD-Player",
                    "BlueStacks",
                    "BstkSVC",
                    "HD-XapkHandler"
                };
                bool flag = false;
                foreach (string procName in strArray)
                {
                    if (Utils.IsRunningInstanceClashWithAnotherInstance(procName))
                    {
                        flag = true;
                        break;
                    }
                }
                if (Utils.IsRunningInstanceClashWithService(BlueStacks.QuitMultiInstall.QuitMultiInstall.BlueStacksServicePlusPrefixes, out runningSvc))
                {
                    flag = true;
                }
                if (!flag)
                {
                    return(0);
                }
                string str1 = LocaleStrings.GetLocalizedString("STRING_ANOTHER_BLUESTACKS_INSTANCE_RUNNING_PROMPT_TEXT1", "");
                string str2 = LocaleStrings.GetLocalizedString("STRING_ANOTHER_BLUESTACKS_INSTANCE_RUNNING_PROMPT_TEXT2", "");
                if ("bgp".Equals("dmm") && RegistryManager.Instance.UserSelectedLocale.Equals("ja-JP", StringComparison.InvariantCultureIgnoreCase))
                {
                    str1 = "同時に起動できないプログラムが既に動いています。";
                    str2 = "既に動いているプログラムを閉じて続行しますか?";
                }
                if (MessageBox.Show(str1 + Environment.NewLine + str2, string.Format("{0} Warning", (object)Strings.ProductDisplayName), MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.Cancel)
                {
                    return(-1);
                }
            }
            BlueStacks.QuitMultiInstall.QuitMultiInstall.QuitPreviousInstance();
            if (runningSvc != null)
            {
                BlueStacks.QuitMultiInstall.QuitMultiInstall.StopService(runningSvc);
            }
            ComRegistration.Register();
            return(0);
        }