Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using DLU_Control_Panel.Properties;
- using Microsoft.Win32;
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Threading;
- using System.Windows;
- namespace DLU_Control_Panel
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public string BaseDirectory;
- public Process AuthProcess { get; private set; }
- public Process CharProcess { get; private set; }
- public Process WorldProcess { get; private set; }
- public bool AuthRunning { get; private set; }
- public bool CharRunning { get; private set; }
- public bool WorldRunning { get; private set; }
- public bool Running { get; private set; }
- public MainWindow()
- {
- InitializeComponent();
- Running = true;
- BaseDirectory = Directory.GetCurrentDirectory();
- AuthPath.Text = (string)Settings.Default["AuthPath"];
- CharPath.Text = (string)Settings.Default["CharPath"];
- WorldPath.Text = (string)Settings.Default["WorldPath"];
- Restart.IsChecked = (bool)Settings.Default["Restart"];
- new Thread(() =>
- {
- try
- {
- while (Running)
- {
- AuthStart.Dispatcher.Invoke((Action)(() =>
- {
- if (AuthProcess != null)
- {
- AuthStart.IsEnabled = !AuthRunning;
- AuthStop.IsEnabled = AuthRunning;
- if (AuthRunning && AuthProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
- {
- AuthProcess = Process.Start(new ProcessStartInfo(AuthPath.Text) { WorkingDirectory = Path.GetDirectoryName(AuthPath.Text) });
- }
- else if (AuthRunning && AuthProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
- {
- AuthRunning = false;
- }
- }
- if (CharProcess != null)
- {
- CharStart.IsEnabled = !CharRunning;
- CharStop.IsEnabled = CharRunning;
- if (CharRunning && CharProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
- {
- CharProcess = Process.Start(new ProcessStartInfo(CharPath.Text) { WorkingDirectory = Path.GetDirectoryName(CharPath.Text) });
- }
- else if (CharRunning && CharProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
- {
- CharRunning = false;
- }
- }
- if (WorldProcess != null)
- {
- WorldStart.IsEnabled = !WorldRunning;
- WorldStop.IsEnabled = WorldRunning;
- if (WorldRunning && WorldProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
- {
- WorldProcess = Process.Start(new ProcessStartInfo(WorldPath.Text) { WorkingDirectory = Path.GetDirectoryName(WorldPath.Text) });
- }
- else if (WorldRunning && WorldProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
- {
- WorldRunning = false;
- }
- }
- }));
- Thread.Sleep(100);
- }
- }
- catch { }
- }).Start();
- Closed += Window_Closing;
- }
- private void AuthBrowse_Click(object sender, RoutedEventArgs e)
- {
- OpenFileDialog fileDialog = new OpenFileDialog();
- var success = fileDialog.ShowDialog(this);
- if (success.HasValue && success.Value)
- {
- AuthPath.Text = fileDialog.FileName;
- }
- }
- private void WorldBrowse_Click(object sender, RoutedEventArgs e)
- {
- OpenFileDialog fileDialog = new OpenFileDialog();
- var success = fileDialog.ShowDialog(this);
- if (success.HasValue && success.Value)
- {
- WorldPath.Text = fileDialog.FileName;
- }
- }
- private void CharBrowse_Click(object sender, RoutedEventArgs e)
- {
- OpenFileDialog fileDialog = new OpenFileDialog();
- var success = fileDialog.ShowDialog(this);
- if (success.HasValue && success.Value)
- {
- CharPath.Text = fileDialog.FileName;
- }
- }
- private void WorldStart_Click(object sender, RoutedEventArgs e)
- {
- WorldProcess = Process.Start(new ProcessStartInfo(WorldPath.Text) { WorkingDirectory = Path.GetDirectoryName(WorldPath.Text) });
- WorldRunning = true;
- }
- private void CharStart_Click(object sender, RoutedEventArgs e)
- {
- CharProcess = Process.Start(new ProcessStartInfo(CharPath.Text) { WorkingDirectory = Path.GetDirectoryName(CharPath.Text) });
- CharRunning = true;
- }
- private void AuthStart_Click(object sender, RoutedEventArgs e)
- {
- AuthProcess = Process.Start(new ProcessStartInfo(AuthPath.Text) { WorkingDirectory = Path.GetDirectoryName(AuthPath.Text) });
- AuthRunning = true;
- }
- private void WorldStop_Click(object sender, RoutedEventArgs e)
- {
- WorldProcess.Kill();
- WorldRunning = false;
- }
- private void AuthStop_Click(object sender, RoutedEventArgs e)
- {
- AuthProcess.Kill();
- AuthRunning = false;
- }
- private void CharStop_Click(object sender, RoutedEventArgs e)
- {
- CharProcess.Kill();
- CharRunning = false;
- }
- private void Window_Closing(object sender, EventArgs e)
- {
- Running = false;
- Settings.Default["AuthPath"] = AuthPath.Text;
- Settings.Default["CharPath"] = CharPath.Text;
- Settings.Default["WorldPath"] = WorldPath.Text;
- Settings.Default["Restart"] = Restart.IsChecked.Value;
- Settings.Default.Save();
- try
- { AuthProcess.Kill(); }
- catch { }
- try
- { CharProcess.Kill(); }
- catch { }
- try
- { WorldProcess.Kill(); }
- catch { }
- AuthRunning = false;
- CharRunning = false;
- WorldRunning = false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement