diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj index 0ccca88..0d713d3 100644 --- a/FizzyLauncher.csproj +++ b/FizzyLauncher.csproj @@ -8,10 +8,11 @@ WinExe AppLauncher fizzylauncher - v4.7.2 + v4.8 512 - true + false true + AnyCPU @@ -134,6 +135,7 @@ TTilePanel.cs + SettingsSingleFileGenerator diff --git a/MainForm.cs b/MainForm.cs index 94f5260..4349ce5 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -26,6 +26,7 @@ namespace AppLauncher //protected const int MOD_SHIFT = 0x4; //protected const int MOD_WIN = 0x8; protected const int WM_HOTKEY = 0x312; + protected const int WM_QUERYENDSESSION = 0x0011; protected OptionsForm optionsForm = null; protected string sessionFilename = null; @@ -127,17 +128,25 @@ namespace AppLauncher protected override void WndProc(ref Message m) { - base.WndProc(ref m); - - if (m.Msg != WM_HOTKEY) return; - - switch (m.WParam.ToInt32()) + switch (m.Msg) { - case 1: - this.Visible = !this.Visible; + case WM_HOTKEY: + if (m.WParam.ToInt32() == 1) + { + this.Visible = !this.Visible; + } + + break; + case WM_QUERYENDSESSION: + requestExit = true; + this.Close(); + break; default: break; + } + + base.WndProc(ref m); } public LauncherSession CurrentSession { get; set; } = null; diff --git a/Models/TileModel.cs b/Models/TileModel.cs index f195aa8..53f8dcf 100644 --- a/Models/TileModel.cs +++ b/Models/TileModel.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Diagnostics; using System.Drawing; @@ -19,18 +20,11 @@ namespace AppLauncher.Models public override string ToString() => this.Title ?? string.Empty; - //public void Update(TileModel model) - //{ - // this.Title = model.Title; - // this.ProcessFilename = model.ProcessFilename; - // this.ProcessArgument = model.ProcessArgument; - // this.ProcessWorkingDirectory = model.ProcessWorkingDirectory; - // this.ProcessWindowStyle = model.ProcessWindowStyle; - // this.ProcessAsAdmin = model.ProcessAsAdmin; - // this.Position = model.Position; - // this.IsGroup = model.IsGroup; - // this.Items = model.Items; - //} + public string CleanProcessFilename => (string.IsNullOrWhiteSpace(this.ProcessFilename) ? string.Empty : Environment.ExpandEnvironmentVariables(this.ProcessFilename)); + + public string CleanProcessArgument => (string.IsNullOrWhiteSpace(this.ProcessArgument) ? string.Empty : Environment.ExpandEnvironmentVariables(this.ProcessArgument)); + + public string CleanProcessWorkingDirectory => (string.IsNullOrWhiteSpace(this.ProcessWorkingDirectory) ? string.Empty : Environment.ExpandEnvironmentVariables(this.ProcessWorkingDirectory)); } } diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 0c3a60f..01b4147 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("0.1.1.153")] +[assembly: AssemblyFileVersion("0.1.1.158")] diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index 8649fed..85a6f63 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace AppLauncher.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs index dd28ad7..88ad239 100644 --- a/Windows/Forms/Tile/TTilePanel.cs +++ b/Windows/Forms/Tile/TTilePanel.cs @@ -283,21 +283,21 @@ namespace AppLauncher.Windows.Forms return; } - if (string.IsNullOrWhiteSpace(model.ProcessFilename)) + if (string.IsNullOrWhiteSpace(model.CleanProcessFilename)) { return; } - if (!File.Exists(model.ProcessFilename)) + if (!File.Exists(model.CleanProcessFilename)) { return; } ProcessStartInfo p = new ProcessStartInfo(); - p.FileName = model.ProcessFilename; + p.FileName = model.CleanProcessFilename; p.WindowStyle = model.ProcessWindowStyle; - if (!string.IsNullOrWhiteSpace(model.ProcessArgument)) p.Arguments = model.ProcessArgument; - if (!string.IsNullOrWhiteSpace(model.ProcessWorkingDirectory)) p.WorkingDirectory = model.ProcessWorkingDirectory; + if (!string.IsNullOrWhiteSpace(model.CleanProcessArgument)) p.Arguments = model.CleanProcessArgument; + if (!string.IsNullOrWhiteSpace(model.CleanProcessWorkingDirectory)) p.WorkingDirectory = model.CleanProcessWorkingDirectory; if (model.ProcessAsAdmin) p.Verb = "runas"; MainForm parentForm = findMainForm(); @@ -324,14 +324,14 @@ namespace AppLauncher.Windows.Forms protected Image getIcon(TileModel model) { - if (!File.Exists(model.ProcessFilename)) + if (!File.Exists(model.CleanProcessFilename)) { return null; } try { - return Icon.ExtractAssociatedIcon(model.ProcessFilename)?.ToBitmap(); + return Icon.ExtractAssociatedIcon(model.CleanProcessFilename)?.ToBitmap(); } catch {