From 6d7fec03b47bac37da2b694cf6f5978b806d07ac Mon Sep 17 00:00:00 2001 From: Dunestorm Date: Fri, 26 Mar 2021 20:20:46 +0000 Subject: [PATCH] [VMware Launcher 2.0.9.5] - Refactored code. - Fixed bug: "#1 Welcome message shows despite VMware not being installed" --- .vs/VmwareLauncher/v16/.suo | Bin 0 -> 129024 bytes VmwareLauncher.sln | 17 +++++---- VmwareLauncher/ApplicationControl.cs | 13 +++++++ VmwareLauncher/CheckDependencies.cs | 26 +++++++------- VmwareLauncher/ProcessControl.cs | 12 +++---- VmwareLauncher/Properties/AssemblyInfo.cs | 6 ++-- VmwareLauncher/ServiceControl.cs | 14 ++++---- VmwareLauncher/Startup.xaml.cs | 40 ++++++---------------- VmwareLauncher/StatusWindow.xaml.cs | 31 ++++++++--------- VmwareLauncher/VmwareLauncher.csproj | 3 +- 10 files changed, 79 insertions(+), 83 deletions(-) create mode 100644 .vs/VmwareLauncher/v16/.suo create mode 100644 VmwareLauncher/ApplicationControl.cs diff --git a/.vs/VmwareLauncher/v16/.suo b/.vs/VmwareLauncher/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..5acb896945f828ed2ad00e6af451474930cce46c GIT binary patch literal 129024 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 literal 0 HcmV?d00001 diff --git a/VmwareLauncher.sln b/VmwareLauncher.sln index 7a6dc15..9e62233 100644 --- a/VmwareLauncher.sln +++ b/VmwareLauncher.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2013 for Windows Desktop -VisualStudioVersion = 12.0.21005.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31025.194 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VmwareLauncher", "VmwareLauncher\VmwareLauncher.csproj", "{40A28143-CEF4-41B4-8476-3466822AAAA5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VmwareLauncher", "VmwareLauncher\VmwareLauncher.csproj", "{89E29C69-15E2-43ED-9B98-4BFE9C6D7A2A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,12 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {40A28143-CEF4-41B4-8476-3466822AAAA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40A28143-CEF4-41B4-8476-3466822AAAA5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40A28143-CEF4-41B4-8476-3466822AAAA5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40A28143-CEF4-41B4-8476-3466822AAAA5}.Release|Any CPU.Build.0 = Release|Any CPU + {89E29C69-15E2-43ED-9B98-4BFE9C6D7A2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89E29C69-15E2-43ED-9B98-4BFE9C6D7A2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89E29C69-15E2-43ED-9B98-4BFE9C6D7A2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89E29C69-15E2-43ED-9B98-4BFE9C6D7A2A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D877D8E5-8AB4-41AD-A601-EFBD24992B7E} + EndGlobalSection EndGlobal diff --git a/VmwareLauncher/ApplicationControl.cs b/VmwareLauncher/ApplicationControl.cs new file mode 100644 index 0000000..b0e83a4 --- /dev/null +++ b/VmwareLauncher/ApplicationControl.cs @@ -0,0 +1,13 @@ +using System; + +namespace VMwareLauncher +{ + public static class ApplicationControl + { + public static void Shutdown(int exitCode) + { + Startup.trayIcon.Destroy(); + Environment.Exit(exitCode); + } + } +} diff --git a/VmwareLauncher/CheckDependencies.cs b/VmwareLauncher/CheckDependencies.cs index e7da84f..3479e6d 100644 --- a/VmwareLauncher/CheckDependencies.cs +++ b/VmwareLauncher/CheckDependencies.cs @@ -6,7 +6,7 @@ namespace VMwareLauncher { public class CheckDependencies { - private BackgroundWorker performInitialChecks = new BackgroundWorker(); + private readonly BackgroundWorker performInitialChecks = new BackgroundWorker(); public void PerformCheck() { @@ -14,22 +14,20 @@ namespace VMwareLauncher if (!File.Exists(ProcessControl.DefaultVmwarePath)) { MessageHandler.Show(MessageHandler.MessageCode.VmwareNotInstalled); - - ApplicationControl.BlockingErrors = true; + ApplicationControl.Shutdown(-1); } - - // Determine if VML has ever run before. - string vmlPath = @"HKEY_LOCAL_MACHINE\SOFTWARE\VmwareLauncher"; - string vmlKey = "HasBeenSetup"; - - if (Registry.GetValue(vmlPath, vmlKey, null) == null) + else { - Registry.SetValue(vmlPath, vmlKey, 1); - MessageHandler.Show(MessageHandler.MessageCode.WelcomeMessage); - } + // Determine if VML has ever run before. + string vmlPath = @"HKEY_LOCAL_MACHINE\SOFTWARE\VmwareLauncher"; + string vmlKey = "HasBeenSetup"; - // Modify service status to manual. - ApplicationControl.BlockingErrors = Startup.serviceControl.ForceServicesManual(); + if (Registry.GetValue(vmlPath, vmlKey, null) == null) + { + Registry.SetValue(vmlPath, vmlKey, 1); + MessageHandler.Show(MessageHandler.MessageCode.WelcomeMessage); + } + } } } } \ No newline at end of file diff --git a/VmwareLauncher/ProcessControl.cs b/VmwareLauncher/ProcessControl.cs index 4d7815f..1ee9aa0 100644 --- a/VmwareLauncher/ProcessControl.cs +++ b/VmwareLauncher/ProcessControl.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; +using System.Diagnostics; using System.IO; using System.Linq; @@ -10,8 +7,11 @@ namespace VMwareLauncher public class ProcessControl { public readonly static string DefaultVmwareExe = "vmware"; - public readonly static string DefaultVmwarePath = (string)Microsoft.Win32.Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc.\VMware Workstation", "InstallPath", null) + $"{DefaultVmwareExe}.exe"; - public readonly static string DefaultVmlPath = "vmwarelauncher"; + public readonly static string DefaultVmwarePath = (string) Microsoft.Win32.Registry.GetValue( + @"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc.\VMware Workstation", + "InstallPath", null) + + $"{DefaultVmwareExe}.exe"; + public readonly static string DefaultVmLauncherPath = "vmwarelauncher"; public string ProcessName { get; set; } public void StartProcess() diff --git a/VmwareLauncher/Properties/AssemblyInfo.cs b/VmwareLauncher/Properties/AssemblyInfo.cs index d3764c0..844a818 100644 --- a/VmwareLauncher/Properties/AssemblyInfo.cs +++ b/VmwareLauncher/Properties/AssemblyInfo.cs @@ -12,7 +12,7 @@ using System.Windows; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("VMware Launcher")] -[assembly: AssemblyCopyright("Rebound Software - 2017")] +[assembly: AssemblyCopyright("Rebound Software - 2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] +[assembly: AssemblyVersion("2.0.9.5")] +[assembly: AssemblyFileVersion("2.0.9.5")] diff --git a/VmwareLauncher/ServiceControl.cs b/VmwareLauncher/ServiceControl.cs index b8b8475..3808388 100644 --- a/VmwareLauncher/ServiceControl.cs +++ b/VmwareLauncher/ServiceControl.cs @@ -1,16 +1,18 @@ using Microsoft.Win32; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace VMwareLauncher { public class ServiceControl { - public static readonly List DefaultVmwareServices = new List { "VMnetDHCP", "VMUSBArbService", "VMware NAT Service", "VMwareHostd", "VMAuthdService" }; //Array of services to close - public List ServiceList { get; set; } + public static readonly List VMwareServiceList = new List //Array of services to close + { + "VMnetDHCP", + "VMUSBArbService", + "VMware NAT Service", + "VMwareHostd", + "VMAuthdService" }; public bool ForceServicesManual() { @@ -19,7 +21,7 @@ namespace VMwareLauncher try { - foreach (var service in ServiceList) + foreach (var service in VMwareServiceList) { string currentService = winServices + "\\" + service; if ((int)Registry.GetValue(currentService, "Start", null) != 3) diff --git a/VmwareLauncher/Startup.xaml.cs b/VmwareLauncher/Startup.xaml.cs index 8cfd657..fea2572 100644 --- a/VmwareLauncher/Startup.xaml.cs +++ b/VmwareLauncher/Startup.xaml.cs @@ -1,5 +1,4 @@ -using System; -using System.Windows; +using System.Windows; namespace VMwareLauncher { @@ -17,44 +16,27 @@ namespace VMwareLauncher { InitializeComponent(); - serviceControl.ServiceList = ServiceControl.DefaultVmwareServices; + ProcessControl vmWStationControl = new ProcessControl(); + vmWStationControl.ProcessName = ProcessControl.DefaultVmwarePath; - ProcessControl vmwareControl = new ProcessControl(); - vmwareControl.ProcessName = ProcessControl.DefaultVmwarePath; + ProcessControl vmLauncherControl = new ProcessControl(); + vmLauncherControl.ProcessName = ProcessControl.DefaultVmLauncherPath; - 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()) + // Modify service status to manual. + serviceControl.ForceServicesManual(); + + if (!vmLauncherControl.IsProcessRunning()) { statusWindow.Show(); trayIcon.Create(); } else { - vmwareControl.StartProcess(); - ApplicationControl.Shutdown(); + vmWStationControl.StartProcess(); + ApplicationControl.Shutdown(0); } } } - - 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); - } - } } diff --git a/VmwareLauncher/StatusWindow.xaml.cs b/VmwareLauncher/StatusWindow.xaml.cs index 76b7a4f..55e34f7 100644 --- a/VmwareLauncher/StatusWindow.xaml.cs +++ b/VmwareLauncher/StatusWindow.xaml.cs @@ -46,7 +46,7 @@ namespace VMwareLauncher { try { - foreach (string service in Startup.serviceControl.ServiceList) + foreach (string service in ServiceControl.VMwareServiceList) { ServiceController sc = new ServiceController(service, Environment.MachineName.ToString()); @@ -56,14 +56,14 @@ namespace VMwareLauncher sc.WaitForStatus(ServiceControllerStatus.Stopped); } } - ApplicationControl.Shutdown(); + ApplicationControl.Shutdown(0); } catch (Exception) { throw; } } private void LoadServices_DoWork(object sender, DoWorkEventArgs e) { - foreach (string service in Startup.serviceControl.ServiceList) + foreach (string service in ServiceControl.VMwareServiceList) { ServiceController sc = new ServiceController(service, Environment.MachineName.ToString()); @@ -85,23 +85,20 @@ namespace VMwareLauncher private void RunProcess_DoWork(object sender, DoWorkEventArgs e) { - if (!ApplicationControl.BlockingErrors) + ProcessControl processControl = new ProcessControl(); + processControl.ProcessName = ProcessControl.DefaultVmwarePath; + processControl.StartProcess(); + + bool isVmwareRunning = true; + while (isVmwareRunning || TrayIcon.KeepLauncherRunning) { - ProcessControl processControl = new ProcessControl(); - processControl.ProcessName = ProcessControl.DefaultVmwarePath; - processControl.StartProcess(); + Thread.Sleep(3000); - bool isVmwareRunning = true; - while (isVmwareRunning || TrayIcon.KeepLauncherRunning) - { - Thread.Sleep(3000); - - isVmwareRunning = false; // Default value. - foreach (Process instance in Process.GetProcessesByName(ProcessControl.DefaultVmwareExe)) - isVmwareRunning = true; - } - stopServices.RunWorkerAsync(); + isVmwareRunning = false; // Default value. + foreach (Process instance in Process.GetProcessesByName(ProcessControl.DefaultVmwareExe)) + isVmwareRunning = true; } + stopServices.RunWorkerAsync(); } /// diff --git a/VmwareLauncher/VmwareLauncher.csproj b/VmwareLauncher/VmwareLauncher.csproj index 1ebd45e..e70099e 100644 --- a/VmwareLauncher/VmwareLauncher.csproj +++ b/VmwareLauncher/VmwareLauncher.csproj @@ -15,7 +15,7 @@ true - AnyCPU + x64 true full false @@ -64,6 +64,7 @@ MSBuild:Compile Designer +