public void LaunchTestNew() { var minecraft = @"H:\Users\Tom\AppData\Roaming\.minecraft"; var token = "null"; var settings = Settings.CreateDefault(); settings.Login = "******"; var launcher = new ForgeLaunchWorkerNew(minecraft, settings.JavaPath, settings.Login, token, false); launcher.RegularLaunch((sender, args) => { Assert.Fail("Ended Process"); }); Task.Delay(10 * 1000); Assert.IsTrue(true); //var bat = launcher.GetCmdArgs() + "\npause"; //var batPath = Path.Combine(minecraft, "start.bat"); //File.WriteAllText(batPath, bat); //var info = new ProcessStartInfo(batPath); //var proc = new Process { StartInfo = info }; //var semaphore = new AutoResetEvent(false); //proc.Exited += (sender, args) => //{ // Assert.Fail("Ended Process"); // semaphore.Set(); //}; //proc.Start(); //semaphore.WaitOne(10 * 1000); //proc.Kill(); }
public async Task <string> Launch(EventHandler <bool> onExitCallBack) { if (!IsFolderExists()) { var donloadInfo = await SuccefullyDownloaded(DialogHostNames.WorkerDialogName); if (donloadInfo.Key) { return("Ошибка в скачивании клиентских файлов"); } if (!await SuccefullyUnzipped(DialogHostNames.WorkerDialogName, donloadInfo.Value)) { return("Ошибка при распаковке файлов"); } } if (!IsRightMD5()) { var canReinstall = await MessageService.ShowDialog( "Хэш-сумма папки не совпдает, требуется переустановка.\nПродолжить?", false); if (canReinstall == true) { Directory.Delete(_baseFolder, true); // заного запускаю метод return(await Launch(onExitCallBack)); } return("Хэш-сумма файлов не одинакова"); } var tokenInfo = await GetAccessToken(); if (!tokenInfo.Key) { return("Ошибка регистрации"); } try { var launcher = new ForgeLaunchWorkerNew(_baseFolder, _settings.JavaPath, _login, tokenInfo.Value, _settings.OptimizeJava); launcher.RegularLaunch(onExitCallBack); Application.Current.MainWindow?.Hide(); } catch (Exception e) { Trace.Write(e); return(e.Message); } return(null); }