Files
2019-03-05 20:26:02 +00:00

61 lines
1.7 KiB
C#

using System;
using System.Windows;
namespace VMwareLauncher
{
/// <summary>
/// Interaction logic for Startup.xaml
/// </summary>
public partial class Startup : Window
{
static internal TrayIcon trayIcon = new TrayIcon();
static internal ServiceControl serviceControl = new ServiceControl();
internal StatusWindow statusWindow = new StatusWindow();
internal CheckDependencies checkDependencies = new CheckDependencies();
public Startup()
{
InitializeComponent();
serviceControl.ServiceList = ServiceControl.DefaultVmwareServices;
ProcessControl vmwareControl = new ProcessControl();
vmwareControl.ProcessName = ProcessControl.DefaultVmwarePath;
ProcessControl vmlControl = new ProcessControl();
vmlControl.ProcessName = ProcessControl.DefaultVmlPath;
// Only continue if no errors have been detected.
checkDependencies.PerformCheck();
if (ApplicationControl.BlockingErrors)
ApplicationControl.Shutdown();
if (!vmlControl.IsProcessRunning())
{
statusWindow.Show();
trayIcon.Create();
}
else
{
vmwareControl.StartProcess();
ApplicationControl.Shutdown();
}
}
}
public static class ApplicationControl
{
public static bool BlockingErrors { get; set; }
public static void Shutdown()
{
Startup.trayIcon.Destroy();
if (BlockingErrors)
Environment.Exit(1);
else
Environment.Exit(0);
}
}
}