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); }
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); }