Advertisement
Guest User

DLU Control Panel

a guest
May 30th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.29 KB | None | 0 0
  1. using DLU_Control_Panel.Properties;
  2. using Microsoft.Win32;
  3. using System;
  4. using System.Diagnostics;
  5. using System.IO;
  6. using System.Threading;
  7. using System.Windows;
  8.  
  9. namespace DLU_Control_Panel
  10. {
  11.     /// <summary>
  12.     /// Interaction logic for MainWindow.xaml
  13.     /// </summary>
  14.     public partial class MainWindow : Window
  15.     {
  16.         public string BaseDirectory;
  17.  
  18.         public Process AuthProcess { get; private set; }
  19.         public Process CharProcess { get; private set; }
  20.         public Process WorldProcess { get; private set; }
  21.  
  22.         public bool AuthRunning { get; private set; }
  23.         public bool CharRunning { get; private set; }
  24.         public bool WorldRunning { get; private set; }
  25.  
  26.         public bool Running { get; private set; }
  27.  
  28.         public MainWindow()
  29.         {
  30.             InitializeComponent();
  31.  
  32.             Running = true;
  33.             BaseDirectory = Directory.GetCurrentDirectory();
  34.  
  35.             AuthPath.Text = (string)Settings.Default["AuthPath"];
  36.             CharPath.Text = (string)Settings.Default["CharPath"];
  37.             WorldPath.Text = (string)Settings.Default["WorldPath"];
  38.             Restart.IsChecked = (bool)Settings.Default["Restart"];
  39.  
  40.             new Thread(() =>
  41.             {
  42.                 try
  43.                 {
  44.                     while (Running)
  45.                     {
  46.                         AuthStart.Dispatcher.Invoke((Action)(() =>
  47.                         {
  48.                             if (AuthProcess != null)
  49.                             {
  50.                                 AuthStart.IsEnabled = !AuthRunning;
  51.                                 AuthStop.IsEnabled = AuthRunning;
  52.                                 if (AuthRunning && AuthProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
  53.                                 {
  54.                                     AuthProcess = Process.Start(new ProcessStartInfo(AuthPath.Text) { WorkingDirectory = Path.GetDirectoryName(AuthPath.Text) });
  55.                                 }
  56.                                 else if (AuthRunning && AuthProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
  57.                                 {
  58.                                     AuthRunning = false;
  59.                                 }
  60.                             }
  61.                             if (CharProcess != null)
  62.                             {
  63.                                 CharStart.IsEnabled = !CharRunning;
  64.                                 CharStop.IsEnabled = CharRunning;
  65.                                 if (CharRunning && CharProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
  66.                                 {
  67.                                     CharProcess = Process.Start(new ProcessStartInfo(CharPath.Text) { WorkingDirectory = Path.GetDirectoryName(CharPath.Text) });
  68.                                 }
  69.                                 else if (CharRunning && CharProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
  70.                                 {
  71.                                     CharRunning = false;
  72.                                 }
  73.                             }
  74.                             if (WorldProcess != null)
  75.                             {
  76.                                 WorldStart.IsEnabled = !WorldRunning;
  77.                                 WorldStop.IsEnabled = WorldRunning;
  78.                                 if (WorldRunning && WorldProcess.HasExited && Restart.IsChecked.HasValue && Restart.IsChecked.Value)
  79.                                 {
  80.                                     WorldProcess = Process.Start(new ProcessStartInfo(WorldPath.Text) { WorkingDirectory = Path.GetDirectoryName(WorldPath.Text) });
  81.                                 }
  82.                                 else if (WorldRunning && WorldProcess.HasExited && Restart.IsChecked.HasValue && !Restart.IsChecked.Value)
  83.                                 {
  84.                                     WorldRunning = false;
  85.                                 }
  86.                             }
  87.                         }));
  88.  
  89.                         Thread.Sleep(100);
  90.                     }
  91.                 }
  92.                 catch { }
  93.             }).Start();
  94.  
  95.             Closed += Window_Closing;
  96.         }
  97.  
  98.         private void AuthBrowse_Click(object sender, RoutedEventArgs e)
  99.         {
  100.             OpenFileDialog fileDialog = new OpenFileDialog();
  101.  
  102.             var success = fileDialog.ShowDialog(this);
  103.  
  104.             if (success.HasValue && success.Value)
  105.             {
  106.                 AuthPath.Text = fileDialog.FileName;
  107.             }
  108.         }
  109.  
  110.         private void WorldBrowse_Click(object sender, RoutedEventArgs e)
  111.         {
  112.             OpenFileDialog fileDialog = new OpenFileDialog();
  113.  
  114.             var success = fileDialog.ShowDialog(this);
  115.  
  116.             if (success.HasValue && success.Value)
  117.             {
  118.                 WorldPath.Text = fileDialog.FileName;
  119.             }
  120.         }
  121.  
  122.         private void CharBrowse_Click(object sender, RoutedEventArgs e)
  123.         {
  124.             OpenFileDialog fileDialog = new OpenFileDialog();
  125.  
  126.             var success = fileDialog.ShowDialog(this);
  127.  
  128.             if (success.HasValue && success.Value)
  129.             {
  130.                 CharPath.Text = fileDialog.FileName;
  131.             }
  132.         }
  133.  
  134.         private void WorldStart_Click(object sender, RoutedEventArgs e)
  135.         {
  136.             WorldProcess = Process.Start(new ProcessStartInfo(WorldPath.Text) { WorkingDirectory = Path.GetDirectoryName(WorldPath.Text) });
  137.             WorldRunning = true;
  138.         }
  139.  
  140.         private void CharStart_Click(object sender, RoutedEventArgs e)
  141.         {
  142.             CharProcess = Process.Start(new ProcessStartInfo(CharPath.Text) { WorkingDirectory = Path.GetDirectoryName(CharPath.Text) });
  143.             CharRunning = true;
  144.         }
  145.  
  146.         private void AuthStart_Click(object sender, RoutedEventArgs e)
  147.         {
  148.             AuthProcess = Process.Start(new ProcessStartInfo(AuthPath.Text) { WorkingDirectory = Path.GetDirectoryName(AuthPath.Text) });
  149.             AuthRunning = true;
  150.         }
  151.  
  152.         private void WorldStop_Click(object sender, RoutedEventArgs e)
  153.         {
  154.             WorldProcess.Kill();
  155.             WorldRunning = false;
  156.         }
  157.  
  158.         private void AuthStop_Click(object sender, RoutedEventArgs e)
  159.         {
  160.             AuthProcess.Kill();
  161.             AuthRunning = false;
  162.         }
  163.  
  164.         private void CharStop_Click(object sender, RoutedEventArgs e)
  165.         {
  166.             CharProcess.Kill();
  167.             CharRunning = false;
  168.         }
  169.  
  170.         private void Window_Closing(object sender, EventArgs e)
  171.         {
  172.             Running = false;
  173.  
  174.             Settings.Default["AuthPath"] = AuthPath.Text;
  175.             Settings.Default["CharPath"] = CharPath.Text;
  176.             Settings.Default["WorldPath"] = WorldPath.Text;
  177.             Settings.Default["Restart"] = Restart.IsChecked.Value;
  178.             Settings.Default.Save();
  179.  
  180.             try
  181.             { AuthProcess.Kill(); }
  182.             catch { }
  183.             try
  184.             { CharProcess.Kill(); }
  185.             catch { }
  186.             try
  187.             { WorldProcess.Kill(); }
  188.             catch { }
  189.             AuthRunning = false;
  190.             CharRunning = false;
  191.             WorldRunning = false;
  192.         }
  193.     }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement