private void InvokeLaunch(Version v) { if (_hasLaunchTask) { return; } _hasLaunchTask = true; Task.Run(async() => { string gameDir = Path.GetFullPath(v.GameDirectory); try { await ReRegisterPackage(gameDir); } catch (Exception e) { Debug.WriteLine("App re-register failed:\n" + e.ToString()); MessageBox.Show("App re-register failed:\n" + e.ToString()); _hasLaunchTask = false; return; } try { var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); if (pkg.Count > 0) { await pkg[0].LaunchAsync(); } Debug.WriteLine("App launch finished!"); _hasLaunchTask = false; } catch (Exception e) { Debug.WriteLine("App launch failed:\n" + e.ToString()); MessageBox.Show("App launch failed:\n" + e.ToString()); _hasLaunchTask = false; return; } }); }
private async Task<bool> LaunchGame(MCVersion v, bool KeepLauncherOpen) { try { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.isLaunching; var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); AppActivationResult activationResult = null; if (pkg.Count > 0) activationResult = await pkg[0].LaunchAsync(); System.Diagnostics.Debug.WriteLine("App launch finished!"); if (KeepLauncherOpen && activationResult != null) GetGameProcess(activationResult); if (KeepLauncherOpen == false) { await Application.Current.Dispatcher.InvokeAsync(() => { Application.Current.MainWindow.Close(); }); return true; } else { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.None; return false; } } catch (Exception e) { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.None; System.Diagnostics.Debug.WriteLine("App launch failed:\n" + e.ToString()); ErrorScreenShow.errormsg("Error_AppLaunchFailed_Title", "Error_AppLaunchFailed", e); throw e; } }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is PhoneCallHistoryEntry entry) { try { IRandomAccessStream stream; switch (entry.RemoteId) { case string celluarID when celluarID.StartsWith(PhoneLineTransport.Cellular.ToString()): celluarID = celluarID.Split('|')[1]; IAsyncOperation <PhoneLine> task0 = PhoneLine.FromIdAsync(Guid.Parse(celluarID)); task0.AsTask().Wait(); IAsyncOperation <IReadOnlyList <AppListEntry> > task3 = Package.Current.GetAppListEntriesAsync(); task3.AsTask().Wait(); IAsyncOperation <IRandomAccessStreamWithContentType> task2 = task3.GetResults().First().DisplayInfo.GetLogo(new Size(512, 512)).OpenReadAsync(); task2.AsTask().Wait(); stream = task2.GetResults(); break; case string appID when appID.StartsWith(PhoneLineTransport.VoipApp.ToString()): appID = appID.Split('|')[1]; IAsyncOperation <IList <AppDiagnosticInfo> > task1 = AppDiagnosticInfo.RequestInfoForPackageAsync(appID); task1.AsTask().Wait(); task2 = task1.GetResults().First().AppInfo.DisplayInfo.GetLogo(new Size(512, 512)).OpenReadAsync(); task2.AsTask().Wait(); stream = task2.GetResults(); break; case string deviceID when deviceID.StartsWith(PhoneLineTransport.Bluetooth.ToString()): //deviceID = deviceID.Split('|')[1]; //task0 = PhoneLine.FromIdAsync(Guid.Parse(deviceID)); //task0.AsTask().Wait(); //IAsyncOperation<DeviceInformation> task3 = DeviceInformation.CreateFromIdAsync(task0.GetResults().TransportDeviceId); //task3.AsTask().Wait(); //IAsyncOperation<DeviceThumbnail> task4 = task3.GetResults().GetThumbnailAsync(); //task4.AsTask().Wait(); //stream = task4.GetResults(); //break; default: return(null); } BitmapImage a = new BitmapImage(); a.SetSource(stream); return(a); } catch { return(null); } } else { return(null); } }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is PhoneCallHistoryEntry entry) { try { switch (entry.RemoteId) { case string celluarID when celluarID.StartsWith(PhoneLineTransport.Cellular.ToString()): celluarID = celluarID.Split('|')[1]; IAsyncOperation <PhoneLine> task0 = PhoneLine.FromIdAsync(Guid.Parse(celluarID)); task0.AsTask().Wait(); return(task0.GetResults().NetworkName); case string appID when appID.StartsWith(PhoneLineTransport.VoipApp.ToString()): appID = appID.Split('|')[1]; IAsyncOperation <IList <AppDiagnosticInfo> > task1 = AppDiagnosticInfo.RequestInfoForPackageAsync(appID); task1.AsTask().Wait(); return(task1.GetResults().First().AppInfo.DisplayInfo.DisplayName); case string deviceID when deviceID.StartsWith(PhoneLineTransport.Bluetooth.ToString()): deviceID = deviceID.Split('|')[1]; IAsyncOperation <DeviceInformation> task2 = DeviceInformation.CreateFromIdAsync(deviceID); task2.AsTask().Wait(); return(task2.GetResults().Name); default: return(string.Empty); } } catch { return(string.Empty); } } else { return(string.Empty); } }
private async Task <bool> LaunchGame(MCVersion v) { try { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.isLaunching; var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); if (pkg.Count > 0) { await pkg[0].LaunchAsync(); } System.Diagnostics.Debug.WriteLine("App launch finished!"); if (Properties.LauncherSettings.Default.KeepLauncherOpen) { GetGameProcess(v); } if (Properties.LauncherSettings.Default.KeepLauncherOpen == false) { await Application.Current.Dispatcher.InvokeAsync(() => { Application.Current.MainWindow.Close(); }); return(true); } else { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.None; return(false); } } catch (Exception e) { ViewModels.LauncherModel.Default.CurrentState = ViewModels.LauncherModel.StateChange.None; System.Diagnostics.Debug.WriteLine("App launch failed:\n" + e.ToString()); Application.Current.Dispatcher.Invoke(() => { ErrorScreenShow.errormsg("applauncherror"); }); throw e; } }
private void InvokeLaunch(Version v) { if (_hasLaunchTask) { return; } _hasLaunchTask = true; Task.Run(async() => { v.StateChangeInfo = new VersionStateChangeInfo(VersionState.Registering); string gameDir = Path.GetFullPath(v.GameDirectory); try { await ReRegisterPackage(v.GamePackageFamily, gameDir); } catch (Exception e) { Debug.WriteLine("App re-register failed:\n" + e.ToString()); MessageBox.Show("App re-register failed:\n" + e.ToString()); _hasLaunchTask = false; v.StateChangeInfo = null; return; } v.StateChangeInfo = new VersionStateChangeInfo(VersionState.Launching); try { var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(v.GamePackageFamily); if (pkg.Count > 0) { await pkg[0].LaunchAsync(); } Debug.WriteLine("App launch finished!"); _hasLaunchTask = false; v.StateChangeInfo = null; } catch (Exception e) { Debug.WriteLine("App launch failed:\n" + e.ToString()); MessageBox.Show("App launch failed:\n" + e.ToString()); _hasLaunchTask = false; v.StateChangeInfo = null; return; } }); }
private void InvokeLaunch(Version v) { if (HasLaunchTask) { OnGameStateChanged(GameStateArgs.Empty); return; } else { HasLaunchTask = true; OnGameStateChanged(GameStateArgs.Empty); } Task.Run(async() => { SetInstallationDataPath(); v.StateChangeInfo = new VersionStateChangeInfo(); v.StateChangeInfo.IsLaunching = true; string gameDir = Path.GetFullPath(v.GameDirectory); try { await ReRegisterPackage(gameDir); } catch (Exception e) { Debug.WriteLine("App re-register failed:\n" + e.ToString()); Application.Current.Dispatcher.Invoke(() => { ErrorScreenShow.errormsg("appregistererror"); }); HasLaunchTask = false; OnGameStateChanged(GameStateArgs.Empty); v.StateChangeInfo = null; return; } try { var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); if (pkg.Count > 0) { await pkg[0].LaunchAsync(); } Debug.WriteLine("App launch finished!"); HasLaunchTask = false; OnGameStateChanged(GameStateArgs.Empty); v.StateChangeInfo = null; // close launcher if needed and hide progressbar Application.Current.Dispatcher.Invoke(() => { ConfigManager.MainThread.ProgressBarGrid.Visibility = Visibility.Collapsed; }); if (Properties.Settings.Default.KeepLauncherOpen == false) { await Application.Current.Dispatcher.InvokeAsync(() => { Application.Current.MainWindow.Close(); }); } } catch (Exception e) { Debug.WriteLine("App launch failed:\n" + e.ToString()); Application.Current.Dispatcher.Invoke(() => { ConfigManager.MainThread.ProgressBarGrid.Visibility = Visibility.Collapsed; ErrorScreenShow.errormsg("applauncherror"); }); HasLaunchTask = false; OnGameStateChanged(GameStateArgs.Empty); v.StateChangeInfo = null; return; } }); }
private void InvokeLaunch(MCVersion v) { if (HasLaunchTask) { Application.Current.Dispatcher.Invoke(() => { OnGameStateChanged(GameStateArgs.Empty); }); return; } else { HasLaunchTask = true; Application.Current.Dispatcher.Invoke(() => { OnGameStateChanged(GameStateArgs.Empty); }); } Task.Run(async() => { SetInstallationDataPath(); Model.StateChangeInfo = new VersionStateChangeInfo(); string gameDir = Path.GetFullPath(v.GameDirectory); try { await ReRegisterPackage(v, gameDir); } catch (Exception e) { Program.Log("App re-register failed:\n" + e.ToString()); Application.Current.Dispatcher.Invoke(() => { ErrorScreenShow.errormsg("appregistererror"); }); HasLaunchTask = false; Application.Current.Dispatcher.Invoke(() => { OnGameStateChanged(GameStateArgs.Empty); }); Model.StateChangeInfo = null; return; } try { Model.StateChangeInfo.IsLaunching = true; var pkg = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); if (pkg.Count > 0) { await pkg[0].LaunchAsync(); } Program.Log("App launch finished!"); if (Properties.LauncherSettings.Default.KeepLauncherOpen) { GetActiveProcess(v); } HasLaunchTask = false; Model.StateChangeInfo.IsLaunching = false; Application.Current.Dispatcher.Invoke(() => { OnGameStateChanged(GameStateArgs.Empty); }); Model.StateChangeInfo = null; if (Properties.LauncherSettings.Default.KeepLauncherOpen == false) { await Application.Current.Dispatcher.InvokeAsync(() => { Application.Current.MainWindow.Close(); }); } } catch (Exception e) { Program.Log("App launch failed:\n" + e.ToString()); Application.Current.Dispatcher.Invoke(() => { ErrorScreenShow.errormsg("applauncherror"); }); HasLaunchTask = false; Application.Current.Dispatcher.Invoke(() => { OnGameStateChanged(GameStateArgs.Empty); }); Model.StateChangeInfo = null; return; } }); }
private async Task <bool> Launch(Profile p) { try { await ReRegisterPackage(Path.GetFullPath(p.Version.GameDirectory)); } catch (Exception e) { Trace.WriteLine("App re-register failed:\n" + e.ToString()); Utils.ShowErrorDialog("Launch failed", "An error occured which prevented Zenova from re-registering Minecraft. Ensure that Developer Mode is enabled in Windows Settings."); return(false); } try { LaunchInfo.Status = LaunchStatus.Launching; App.WriteFiles(); var pkgs = await AppDiagnosticInfo.RequestInfoForPackageAsync(MINECRAFT_PACKAGE_FAMILY); var pkg = pkgs.Count > 0 ? pkgs[0] : null; if (pkg == null) { Utils.ShowErrorDialog("Launch failed", "An error occured which prevented Zenova from launching Minecraft. Ensure that Minecraft is installed."); return(false); } if (p.Modded) { AppDebugger app = new AppDebugger(Utils.FindPackages(MINECRAFT_PACKAGE_FAMILY).ToList()[0].Id.FullName); if (app.GetPackageExecutionState() != PACKAGE_EXECUTION_STATE.PES_UNKNOWN) { app.TerminateAllProcesses(); if (app.StatusCode != 0) { return(false); } } app.EnableDebugging(AppDomain.CurrentDomain.BaseDirectory + "ZenovaLoader -d " + (Preferences.instance.DebugMode ? "1" : "0")); if (app.StatusCode != 0) { return(false); } app.LaunchApp(pkg.AppInfo.AppUserModelId); if (app.StatusCode != 0) { return(false); } app.DisableDebugging(); if (app.StatusCode != 0) { return(false); } } else { await pkg.LaunchAsync(); } Trace.WriteLine("App launch finished!"); return(true); } catch (Exception e) { Trace.WriteLine("App launch failed:\n" + e.ToString()); Utils.ShowErrorDialog("Launch failed", "An error occured which prevented Zenova from launching Minecraft."); return(false); } }