static void Main(string[] argv) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentUICulture = System.Globalization.CultureInfo.InvariantCulture; Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.Instance.GeneralConfig.InitializeConfig(); ConfigManager.Instance.LegacyConfigMigration(); if (ConfigManager.Instance.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.Instance.GeneralConfig.DebugConsole) { Helpers.AllocConsole(); } // #2 then parse args var commandLineArgs = new CommandLineParser(argv); Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!ConfigManager.Instance.GeneralConfig.IsFileExist() && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(ConfigManager.Instance.GeneralConfig.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); ConfigManager.Instance.GeneralConfig.Language = commandLineArgs.LangValue; } Application.Run(new Form_Main()); }
static void Main(string[] argv) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); bool ConfigExist = Config.ConfigFileExist(); Config.InitializeConfig(); if (Config.ConfigData.LogToFile) { Logger.ConfigureWithFile(); } if (Config.ConfigData.DebugConsole) { Helpers.AllocConsole(); } Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); string tmp; if (!ConfigExist && !ParseCommandLine(argv, "-lang", out tmp)) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(Config.ConfigData.Language); if (argv.Length > 0) { if (ParseCommandLine(argv, "-lang", out tmp)) { int lang; if (Int32.TryParse(tmp, out lang)) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(lang); Config.ConfigData.Language = lang; } } if (ParseCommandLine(argv, "-config", out tmp)) { Application.Run(new Form1(true)); } } Application.Run(new Form1(false)); }
public Form1(bool ss) { InitializeComponent(); if (ss) { Form4 f4 = new Form4(); f4.ShowDialog(); } if (Config.ConfigData.LogLevel > 0) { Logger.ConfigureWithFile(); } if (Config.ConfigData.DebugConsole) { Helpers.AllocConsole(); } Helpers.ConsolePrint("NICEHASH", "Starting up"); // Log the computer's amount of Total RAM and Page File Size ManagementObjectCollection moc = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem").Get(); foreach (ManagementObject mo in moc) { long TotalRam = long.Parse(mo["TotalVisibleMemorySize"].ToString()) / 1024; long PageFileSize = (long.Parse(mo["TotalVirtualMemorySize"].ToString()) / 1024) - TotalRam; Helpers.ConsolePrint("NICEHASH", "Total RAM: " + TotalRam + "MB"); Helpers.ConsolePrint("NICEHASH", "Page File Size: " + PageFileSize + "MB"); } R = new Random((int)DateTime.Now.Ticks); Text += " v" + Application.ProductVersion; if (Config.ConfigData.Location >= 0 && Config.ConfigData.Location < MiningLocation.Length) { comboBox1.SelectedIndex = Config.ConfigData.Location; } else { comboBox1.SelectedIndex = 0; } textBox1.Text = Config.ConfigData.BitcoinAddress; textBox2.Text = Config.ConfigData.WorkerName; ShowWarningNiceHashData = true; }
static void Main(string[] argv) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var commandLineArgs = new CommandLineParser(argv); bool ConfigExist = Config.ConfigFileExist(); Config.InitializeConfig(); if (Config.ConfigData.LogToFile) { Logger.ConfigureWithFile(); } if (Config.ConfigData.DebugConsole) { Helpers.AllocConsole(); } Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!ConfigExist && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(Config.ConfigData.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); Config.ConfigData.Language = commandLineArgs.LangValue; } Application.Run(new Form_Main(commandLineArgs.IsConfig)); }
static void Main(string[] argv) { // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.InitializeConfig(); // #2 check if multiple instances are allowed var startProgram = true; if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { startProgram = false; } } } catch { } } if (startProgram) { if (ConfigManager.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); } // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; // #2 then parse args var commandLineArgs = new CommandLineParser(argv); Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!pathSet) { Helpers.ConsolePrint("NICEHASH", "Path not set to executable"); } var tosChecked = ConfigManager.GeneralConfig.agreedWithTOS == Globals.CurrentTosVer; if (!tosChecked || !ConfigManager.GeneralConfigIsFileExist() && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner Legacy for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(ConfigManager.GeneralConfig.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); ConfigManager.GeneralConfig.Language = commandLineArgs.LangValue; } // check WMI if (Helpers.IsWmiEnabled()) { if (ConfigManager.GeneralConfig.agreedWithTOS != Globals.CurrentTosVer) { return; } if (ConfigManager.GeneralConfig.BitcoinAddress.Trim() == "") { var dialogSwitch = new EnterBTCDialogSwitch(); Application.Run(dialogSwitch); if (dialogSwitch.IsLogin) { var loginForm = new LoginForm(); Application.Run(loginForm); if (BitcoinAddress.ValidateBitcoinAddress(loginForm.Btc)) { ConfigManager.GeneralConfig.BitcoinAddress = loginForm.Btc; ConfigManager.GeneralConfigFileCommit(); } } Application.Run(new Form_Main()); } } else { MessageBox.Show(International.GetText("Program_WMI_Error_Text"), International.GetText("Program_WMI_Error_Title"), MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
static void Main(string[] argv) { // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Paths.SetRoot(path); Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // set security protocols ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; // #1 first initialize config ConfigManager.InitializeConfig(); #warning "TODO Ensure that there is only a single instance running at time. Currenly the restart is broken if we close on multiple instances" // #2 check if multiple instances are allowed if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { // already running instance, return from Main return; } } } catch { } } // TODO set logging level Logger.ConfigureWithFile(ConfigManager.GeneralConfig.LogToFile, Level.Info, ConfigManager.GeneralConfig.LogMaxFileSize); if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); Logger.ConfigureConsoleLogging(Level.Info); } // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; Logger.Info("NICEHASH", $"Starting up {ApplicationStateManager.Title}"); if (!pathSet) { Logger.Info("NICEHASH", "Path not set to executable"); } // check TOS if (ConfigManager.GeneralConfig.agreedWithTOS != ApplicationStateManager.CurrentTosVer) { Logger.Info("NICEHASH", $"TOS differs! agreed: {ConfigManager.GeneralConfig.agreedWithTOS} != Current {ApplicationStateManager.CurrentTosVer}. Showing TOS Form."); Application.Run(new FormEula()); // check TOS after if (ConfigManager.GeneralConfig.agreedWithTOS != ApplicationStateManager.CurrentTosVer) { Logger.Info("NICEHASH", "TOS differs AFTER TOS confirmation FORM"); // TOS not confirmed return from Main return; } } // if config created show language select if (string.IsNullOrEmpty(ConfigManager.GeneralConfig.Language)) { if (Translations.GetAvailableLanguagesNames().Count > 1) { Application.Run(new Form_ChooseLanguage()); } else { ConfigManager.GeneralConfig.Language = "en"; ConfigManager.GeneralConfigFileCommit(); } } Translations.LanguageChanged += (s, e) => FormHelpers.TranslateAllOpenForms(); Translations.SelectedLanguage = ConfigManager.GeneralConfig.Language; // if system requirements are not ensured it will fail the program var canRun = ApplicationStateManager.SystemRequirementsEnsured(); if (!canRun) { return; } // 3rdparty miners TOS check if setting set if (ConfigManager.GeneralConfig.Use3rdPartyMinersTOS != ApplicationStateManager.CurrentTosVer) { using (var secondTOS = new Form_3rdParty_TOS()) { Application.Run(secondTOS); if (!secondTOS.Accepted) { return; } } ConfigManager.GeneralConfigFileCommit(); } #warning "Login form feature is missing (only discontinued old platform supports it)" #if false // if no BTC address show login/register form if (ConfigManager.GeneralConfig.BitcoinAddress.Trim() == "") { Application.Run(new EnterBTCDialogSwitch()); } #endif Application.Run(new Form_Main()); }
private void App_OnStartup(object sender, StartupEventArgs e) { #if __DESIGN_DEVELOP var designWindow = new __DESIGN_DEVELOP(); designWindow.ShowDialog(); return; #endif RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; ApplicationStateManager.App = this; ApplicationStateManager.ApplicationExit = () => { this.Dispatcher.Invoke(() => { this.Shutdown(); }); }; var isLauncher = Environment.GetCommandLineArgs().Contains("-lc"); var launcherPID = ParseLauncherPID(); Launcher.SetIsUpdated(Environment.GetCommandLineArgs().Contains("-updated")); Launcher.SetIsUpdatedFailed(Environment.GetCommandLineArgs().Contains("-updateFailed")); Launcher.SetIsLauncher(isLauncher); // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (path != null) { if (isLauncher) { var oneUpPath = new Uri(Path.Combine(path, @"..\")).LocalPath; Paths.SetRoot(oneUpPath); Paths.SetAppRoot(path); // TODO this might be problematic Environment.CurrentDirectory = oneUpPath; } else { Paths.SetRoot(path); Paths.SetAppRoot(path); Environment.CurrentDirectory = path; } pathSet = true; } // Add common folder to path for launched processes const string pathKey = "PATH"; var pathVar = Environment.GetEnvironmentVariable(pathKey); pathVar += $";{Path.Combine(Paths.AppRoot, "common")}"; Environment.SetEnvironmentVariable(pathKey, pathVar); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // Set security protocols ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; // Initialize config ConfigManager.InitializeConfig(); ThemeSetterManager.SetTheme(GUISettings.Instance.DisplayTheme); // Check multiple instances if (!MiscSettings.Instance.AllowMultipleInstances) { try { var current = Process.GetCurrentProcess(); var processesIds = Process.GetProcessesByName(current.ProcessName).Select(p => p.Id); if (processesIds.Any(pid => pid != current.Id && pid != launcherPID)) { var singleInstanceNotice = new SingleInstanceNotice { }; singleInstanceNotice.ShowDialog(); // Shutdown to exit Shutdown(); return; } } catch { } } // Init logger Logger.ConfigureWithFile(LoggingDebugConsoleSettings.Instance.LogToFile, Level.Info, LoggingDebugConsoleSettings.Instance.LogMaxFileSize); if (LoggingDebugConsoleSettings.Instance.DebugConsole) { PInvokeHelpers.AllocConsole(); Logger.ConfigureConsoleLogging(Level.Info); } if (!pathSet) { Logger.Warn(Tag, "Path not set to executable"); } // Set to explicit shutdown or else these intro windows will cause shutdown ShutdownMode = ShutdownMode.OnExplicitShutdown; Logger.Info(Tag, $"Starting up {ApplicationStateManager.Title}"); if (ToSSetings.Instance.AgreedWithTOS != ApplicationStateManager.CurrentTosVer) { Logger.Info(Tag, $"TOS differs! agreed: {ToSSetings.Instance.AgreedWithTOS} != Current {ApplicationStateManager.CurrentTosVer}"); var eula = new EulaWindowFirstLong { }; var accepted = eula.ShowDialog(); if (accepted.HasValue && eula.AcceptedTos) { ToSSetings.Instance.AgreedWithTOS = ApplicationStateManager.CurrentTosVer; } else { Logger.Error(Tag, "TOS differs AFTER TOS confirmation window"); Shutdown(); return; } } // Check 3rd party miners TOS if (ToSSetings.Instance.Use3rdPartyMinersTOS != ApplicationStateManager.CurrentTosVer) { var thirdPty = new EulaWindowSecondShort { }; thirdPty.ShowDialog(); if (!thirdPty.Accepted) { Logger.Error(Tag, "3rd party TOS not accepted"); Shutdown(); return; } ToSSetings.Instance.Use3rdPartyMinersTOS = ApplicationStateManager.CurrentTosVer; ConfigManager.GeneralConfigFileCommit(); } // Chose lang if (string.IsNullOrEmpty(TranslationsSettings.Instance.Language) && AppRuntimeSettings.ShowLanguage) { if (Translations.GetAvailableLanguagesNames().Count > 1) { var lang = new ChooseLanguageWindow { }; lang.ShowDialog(); } // check if user didn't choose anything if (string.IsNullOrEmpty(TranslationsSettings.Instance.Language)) { TranslationsSettings.Instance.Language = "en"; } ConfigManager.GeneralConfigFileCommit(); } else if (string.IsNullOrEmpty(TranslationsSettings.Instance.Language) && !AppRuntimeSettings.ShowLanguage) { // while we have locale disabled set english TranslationsSettings.Instance.Language = "en"; ConfigManager.GeneralConfigFileCommit(); } Translations.SelectedLanguage = TranslationsSettings.Instance.Language; // Check sys requirements var canRun = ApplicationStateManager.SystemRequirementsEnsured(); if (!canRun) { Shutdown(); return; } #if ENABLE_LOGIN FilterOSSpecific.GetWindowsVersion(); // show login if no BTC if (!CredentialsSettings.Instance.IsBitcoinAddressValid && AppRuntimeSettings.ShowLoginWindow && SystemVersion.BuildNumber >= 17110) { var login = new LoginWindow { }; var nek = login.ShowDialog(); } #endif if (!CredentialsSettings.Instance.IsBitcoinAddressValid) { var btcNotice = new DemoBTCNotice { }; btcNotice.ShowDialog(); } var main = new MainWindow(); main.Show(); //// Set shutdown mode back to default //ShutdownMode = ShutdownMode.OnLastWindowClose; }
static void Main(string[] argv) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.InitializeConfig(); // #2 check if multiple instances are allowed bool startProgram = true; if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { Process current = Process.GetCurrentProcess(); foreach (Process process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { startProgram = false; } } } catch { } } if (startProgram) { if (ConfigManager.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.GeneralConfig.DebugConsole) { Helpers.AllocConsole(); } // init active display currency after config load ExchangeRateAPI.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; // #2 then parse args var commandLineArgs = new CommandLineParser(argv); Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); bool tosChecked = ConfigManager.GeneralConfig.agreedWithTOS == Globals.CURRENT_TOS_VER; if (!tosChecked || !ConfigManager.GeneralConfigIsFileExist() && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner Legacy for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(ConfigManager.GeneralConfig.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); ConfigManager.GeneralConfig.Language = commandLineArgs.LangValue; } // check WMI if (Helpers.IsWMIEnabled()) { if (ConfigManager.GeneralConfig.agreedWithTOS == Globals.CURRENT_TOS_VER) { Application.Run(new Form_Main()); } } else { MessageBox.Show(International.GetText("Program_WMI_Error_Text"), International.GetText("Program_WMI_Error_Title"), MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
static void Main(string[] argv) { // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.InitializeConfig(); // #2 check if multiple instances are allowed if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { // already running instance, return from Main return; } } } catch { } } // start program if (ConfigManager.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); } // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!pathSet) { Helpers.ConsolePrint("NICEHASH", "Path not set to executable"); } // check TOS if (ConfigManager.GeneralConfig.agreedWithTOS != Globals.CurrentTosVer) { Helpers.ConsolePrint("NICEHASH", $"TOS differs! agreed: ${ConfigManager.GeneralConfig.agreedWithTOS} != Current ${Globals.CurrentTosVer}. Showing TOS Form."); Application.Run(new FormEula()); // check TOS after if (ConfigManager.GeneralConfig.agreedWithTOS != Globals.CurrentTosVer) { Helpers.ConsolePrint("NICEHASH", $"TOS differs AFTER TOS confirmation FORM"); // TOS not confirmed return from Main return; } } // if config created show language select if (string.IsNullOrEmpty(ConfigManager.GeneralConfig.Language)) { if (Translations.GetAvailableLanguagesNames().Count > 1) { Application.Run(new Form_ChooseLanguage()); } else { ConfigManager.GeneralConfig.Language = "en"; ConfigManager.GeneralConfigFileCommit(); } } Translations.SetLanguage(ConfigManager.GeneralConfig.Language); // check WMI if (Helpers.IsWmiEnabled()) { // if no BTC address show login/register form if (ConfigManager.GeneralConfig.BitcoinAddress.Trim() == "") { Application.Run(new EnterBTCDialogSwitch()); } // finally run Application.Run(new Form_Main()); } else { MessageBox.Show(Translations.Tr("NiceHash Miner Legacy cannot run needed components. It seems that your system has Windows Management Instrumentation service Disabled. In order for NiceHash Miner Legacy to work properly Windows Management Instrumentation service needs to be Enabled. This service is needed to detect RAM usage and Avaliable Video controler information. Enable Windows Management Instrumentation service manually and start NiceHash Miner Legacy."), Translations.Tr("Windows Management Instrumentation Error"), MessageBoxButtons.OK, MessageBoxIcon.Error); } }
static void Main(string[] argv) { // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.InitializeConfig(); // #2 check if multiple instances are allowed var startProgram = true; if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { startProgram = false; } } } catch { } } if (startProgram) { if (ConfigManager.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); } //** /* * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 4) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (File.Exists("internals\\MinerOptionPackage_glg.json")) * File.Delete("internals\\MinerOptionPackage_glg.json"); * * if (File.Exists("internals\\MinerOptionPackage_ClaymoreDual.json")) * File.Delete("internals\\MinerOptionPackage_ClaymoreDual.json"); * * if (File.Exists("bin\\ccminer_klaust\\ccminer.exe")) * File.Delete("bin\\ccminer_klaust\\ccminer.exe"); * ConfigManager.GeneralConfig.ForkFixVersion = 4; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 4.1) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (File.Exists("internals\\MinerOptionPackage_ClaymoreDual.json")) * File.Delete("internals\\MinerOptionPackage_ClaymoreDual.json"); * * ConfigManager.GeneralConfig.ForkFixVersion = 4.1; * } * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 5) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 5; * } * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 6) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 6; * } * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 7) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * ConfigManager.GeneralConfig.ForkFixVersion = 7; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 8) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * ConfigManager.GeneralConfig.ForkFixVersion = 8; * } * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 8.2) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * ConfigManager.GeneralConfig.ForkFixVersion = 8.2; * } * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 9) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 9; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 9.1) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 9.1; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 9.2) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 9.2; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 9.3) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 9.3; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 10) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 10; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 11) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin\\xmrig\\xmrig.exe")) * File.Delete("bin\\xmrig\\xmrig.exe"); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 11; * } * * if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 11.1) * { * Helpers.ConsolePrint("NICEHASH", "Old version"); * if (Directory.Exists("internals")) * Directory.Delete("internals", true); * * if (File.Exists("bin_3rdparty\\t-rex\\t-rex.exe")) * File.Delete("bin_3rdparty\\t-rex\\t-rex.exe"); * * ConfigManager.GeneralConfig.ForkFixVersion = 11.1; * } */ if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 11.2) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 11.2; } if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 12) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 12; } if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 12.1) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 12.1; } if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 13) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 13; } if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 13.1) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 13.1; } if (Configs.ConfigManager.GeneralConfig.ForkFixVersion < 14) { Helpers.ConsolePrint("NICEHASH", "Old version"); if (Directory.Exists("internals")) { Directory.Delete("internals", true); } ConfigManager.GeneralConfig.ForkFixVersion = 14.0; } //** Thread.Sleep(500); // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; // #2 then parse args var commandLineArgs = new CommandLineParser(argv); Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!pathSet) { Helpers.ConsolePrint("NICEHASH", "Path not set to executable"); } var tosChecked = ConfigManager.GeneralConfig.agreedWithTOS == Globals.CurrentTosVer; if (!tosChecked || !ConfigManager.GeneralConfigIsFileExist() && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner Legacy for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(ConfigManager.GeneralConfig.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); ConfigManager.GeneralConfig.Language = commandLineArgs.LangValue; } // check WMI if (Helpers.IsWmiEnabled()) { if (ConfigManager.GeneralConfig.agreedWithTOS == Globals.CurrentTosVer) { Application.Run(new Form_Main()); } } else { MessageBox.Show(International.GetText("Program_WMI_Error_Text"), International.GetText("Program_WMI_Error_Title"), MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
static void Main(string[] argv) { // log unhandled exceptions AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionLogger); Application.ThreadException += new ThreadExceptionEventHandler(ThreadExceptionLogger); // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; //Console.OutputEncoding = System.Text.Encoding.Unicode; // #0 set this first so data parsing will work correctly Globals.JsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, Culture = CultureInfo.InvariantCulture }; // #1 first initialize config ConfigManager.InitializeConfig(); // #2 check if multiple instances are allowed var startProgram = true; if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { startProgram = false; } } } catch { } } if (startProgram) { if (ConfigManager.GeneralConfig.LogToFile) { Logger.ConfigureWithFile(); } if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); } // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; // #2 then parse args var commandLineArgs = new CommandLineParser(argv); Helpers.ConsolePrint("NICEHASH", "Starting up NiceHashMiner v" + Application.ProductVersion); if (!pathSet) { Helpers.ConsolePrint("NICEHASH", "Path not set to executable"); } /* Preset language to RU and icence aggreement */ ConfigManager.InitializeConfig(); ConfigManager.GeneralConfig.agreedWithTOS = Globals.CurrentTosVer; ConfigManager.GeneralConfig.SetDefaults(); ConfigManager.GeneralConfigFileCommit(); ConfigManager.HideTrayIcon = commandLineArgs.hideTrayIcon; ConfigManager.HideEmail = commandLineArgs.hideEmail; ConfigManager.TestDriverUpdateForm = commandLineArgs.testDriverUpdateForm; var tosChecked = ConfigManager.GeneralConfig.agreedWithTOS == Globals.CurrentTosVer; if (!tosChecked || !ConfigManager.GeneralConfigIsFileExist() && !commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "No config file found. Running NiceHash Miner Legacy for the first time. Choosing a default language."); Application.Run(new Form_ChooseLanguage()); } // Init languages International.Initialize(ConfigManager.GeneralConfig.Language); if (commandLineArgs.IsLang) { Helpers.ConsolePrint("NICEHASH", "Language is overwritten by command line parameter (-lang)."); International.Initialize(commandLineArgs.LangValue); ConfigManager.GeneralConfig.Language = commandLineArgs.LangValue; } if (ConfigManager.GeneralConfig.Account == null || ConfigManager.GeneralConfig.WorkerName == "") { Application.Run(new Form_Authorization()); } else { WebAPI.UpdateMachineInfo(ConfigManager.GeneralConfig.WorkerName); } // check WMI if (ConfigManager.GeneralConfig.Account != null) { if (Helpers.IsWmiEnabled()) { if (ConfigManager.GeneralConfig.agreedWithTOS == Globals.CurrentTosVer) { while (true) { Application.Run(new Form_Main()); if (ConfigManager.GeneralConfig.Account == null) { Application.Run(new Form_Authorization()); } else { break; } } } } else { MessageBox.Show(International.GetText("Program_WMI_Error_Text"), International.GetText("Program_WMI_Error_Title"), MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Вы должны сначала авторизоваться в системе!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
static void Main(string[] argv) { BUILD_TAG.ASSERT_COMPATIBLE_BUILDS(); // Set working directory to exe var pathSet = false; var path = Path.GetDirectoryName(Application.ExecutablePath); if (path != null) { Paths.SetRoot(path); Environment.CurrentDirectory = path; pathSet = true; } // Add common folder to path for launched processes var pathVar = Environment.GetEnvironmentVariable("PATH"); pathVar += ";" + Path.Combine(Environment.CurrentDirectory, "common"); Environment.SetEnvironmentVariable("PATH", pathVar); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // set security protocols ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; // #1 first initialize config ConfigManager.InitializeConfig(); // // PRODUCTION NEW //#if (TESTNET || TESTNETDEV || PRODUCTION_NEW) // // TODO disable this as it breaks restart functionality // //// on new production we allow only one instance // //try // //{ // // var current = Process.GetCurrentProcess(); // // foreach (var process in Process.GetProcessesByName(current.ProcessName)) // // { // // if (process.Id != current.Id) // // { // // // already running instance, return from Main // // MessageBox.Show(Tr("{0} can run only one instance at a time.", NHMProductInfo.Name), // // Tr("{0} Already Running", NHMProductInfo.Name), // // MessageBoxButtons.OK, MessageBoxIcon.Error); // // return; // // } // // } // //} // //catch { } //#else // // PRODUCTION OLD // #2 check if multiple instances are allowed if (ConfigManager.GeneralConfig.AllowMultipleInstances == false) { try { var current = Process.GetCurrentProcess(); foreach (var process in Process.GetProcessesByName(current.ProcessName)) { if (process.Id != current.Id) { // already running instance, return from Main return; } } } catch { } } //#endif // TODO set logging level Logger.ConfigureWithFile(ConfigManager.GeneralConfig.LogToFile, Level.Info, ConfigManager.GeneralConfig.LogMaxFileSize); if (ConfigManager.GeneralConfig.DebugConsole) { PInvokeHelpers.AllocConsole(); } // init active display currency after config load ExchangeRateApi.ActiveDisplayCurrency = ConfigManager.GeneralConfig.DisplayCurrency; Logger.Info("NICEHASH", $"Starting up {ApplicationStateManager.Title}"); if (!pathSet) { Logger.Info("NICEHASH", "Path not set to executable"); } // check TOS if (ConfigManager.GeneralConfig.agreedWithTOS != ApplicationStateManager.CurrentTosVer) { Logger.Info("NICEHASH", $"TOS differs! agreed: {ConfigManager.GeneralConfig.agreedWithTOS} != Current {ApplicationStateManager.CurrentTosVer}. Showing TOS Form."); Application.Run(new FormEula()); // check TOS after if (ConfigManager.GeneralConfig.agreedWithTOS != ApplicationStateManager.CurrentTosVer) { Logger.Info("NICEHASH", "TOS differs AFTER TOS confirmation FORM"); // TOS not confirmed return from Main return; } } // if config created show language select if (string.IsNullOrEmpty(ConfigManager.GeneralConfig.Language)) { if (Translations.GetAvailableLanguagesNames().Count > 1) { Application.Run(new Form_ChooseLanguage()); } else { ConfigManager.GeneralConfig.Language = "en"; ConfigManager.GeneralConfigFileCommit(); } } Translations.SetLanguage(ConfigManager.GeneralConfig.Language); // if system requirements are not ensured it will fail the program var canRun = ApplicationStateManager.SystemRequirementsEnsured(); if (!canRun) { return; } // 3rdparty miners TOS check if setting set if (ConfigManager.GeneralConfig.Use3rdPartyMiners == Use3rdPartyMiners.NOT_SET) { Application.Run(new Form_3rdParty_TOS()); ConfigManager.GeneralConfigFileCommit(); } // PRODUCTION #if !(TESTNET || TESTNETDEV || PRODUCTION_NEW) // if no BTC address show login/register form if (ConfigManager.GeneralConfig.BitcoinAddress.Trim() == "") { Application.Run(new EnterBTCDialogSwitch()); } #endif Application.Run(new Form_Main()); }