private void App_OnStartup(object sender, StartupEventArgs e) { if (SingleApplicationDetector.IsRunning()) { if (MessageBox.Show( "Detected already running TeknoParrot Ui, want me to close it for you?", "Error", MessageBoxButton.YesNo, MessageBoxImage.Error) == MessageBoxResult.Yes) { TerminateProcesses(); } else { Application.Current.Shutdown(0); return; } } if (File.Exists("DumbJVSManager.exe")) { MessageBox.Show( "Seems you have extracted me to directory of old TeknoParrot, please extract me to a new directory instead!", "Error", MessageBoxButton.OK, MessageBoxImage.Error); Application.Current.Shutdown(0); return; } var parrotData = JoystickHelper.DeSerialize(); if (parrotData == null) { StartApp(); return; } if (e.Args.Length != 0) { // Process command args if (HandleArgs(e.Args)) { // Args ok, let's do stuff if (_emuOnly) { TeknoParrotUi.Views.GameRunning g = new TeknoParrotUi.Views.GameRunning(_profile, _test, parrotData, _profile.TestMenuParameter, _profile.TestMenuIsExecutable, _profile.TestMenuExtraParameters, true); g.Show(); return; } else { TeknoParrotUi.Views.GameRunning g = new TeknoParrotUi.Views.GameRunning(_profile, _test, parrotData, _profile.TestMenuParameter, _profile.TestMenuIsExecutable, _profile.TestMenuExtraParameters, false); g.Show(); return; } } } StartApp(); }
/// <summary> /// Validates that the game exists and then runs it with the emulator. /// </summary> /// <param name="gameLocation">Game executable location.</param> /// <param name="gameProfile">Input profile.</param> /// <param name="testMenuString">Command to run test menu.</param> /// <param name="isSinglePlayer">Init only first player controller.</param> /// <param name="testMenuIsExe">If uses separate exe.</param> /// <param name="exeName">Test menu exe name.</param> private void ValidateAndRun(GameProfile gameProfile, string testMenuString, string exeName = "") { if (!ValidateGameRun(gameProfile)) { return; } var testMenu = ChkTestMenu.IsChecked != null && ChkTestMenu.IsChecked.Value; var gameRunning = new TeknoParrotUi.Views.GameRunning(gameProfile, testMenu, _parrotData, testMenuString, gameProfile.TestMenuIsExecutable, exeName); gameRunning.ShowDialog(); gameRunning.Close(); }