From 5fa6326fe6d209e99313f4aeab0a527f73e5949c Mon Sep 17 00:00:00 2001 From: Stefan Koell Date: Mon, 7 Nov 2022 16:07:23 +0100 Subject: [PATCH] Support for custom wfreerdp.exe path --- .../Configuration/FreeRdpConfiguration.cs | 7 ++++++- .../FreeRdpControl.cs | 18 ++++++++++++++---- ...RoyalApps.Community.FreeRdp.WinForms.csproj | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/RoyalApps.Community.FreeRdp.WinForms/Configuration/FreeRdpConfiguration.cs b/src/RoyalApps.Community.FreeRdp.WinForms/Configuration/FreeRdpConfiguration.cs index 8ab4b2f..375c44b 100644 --- a/src/RoyalApps.Community.FreeRdp.WinForms/Configuration/FreeRdpConfiguration.cs +++ b/src/RoyalApps.Community.FreeRdp.WinForms/Configuration/FreeRdpConfiguration.cs @@ -288,7 +288,12 @@ public class FreeRdpConfiguration : IValidatableObject /// SmartReconnect: When enabled, the connection will be re-established to adapt to the new desktop size /// public bool SmartReconnect { get; set; } - + + /// + /// The full path to an alternative wfreerdp.exe + /// + public string? Executable { get; set; } + /// /// TempPath: The directory where wfreerdp.exe is written to if not already available /// diff --git a/src/RoyalApps.Community.FreeRdp.WinForms/FreeRdpControl.cs b/src/RoyalApps.Community.FreeRdp.WinForms/FreeRdpControl.cs index 5bf2a93..cc5b41d 100644 --- a/src/RoyalApps.Community.FreeRdp.WinForms/FreeRdpControl.cs +++ b/src/RoyalApps.Community.FreeRdp.WinForms/FreeRdpControl.cs @@ -152,10 +152,20 @@ public void Connect() // AutoScrollMinSize is required to get scrollbars to appear AutoScrollMinSize = _renderTarget.Size; - - var freeRdpPath = - Environment.ExpandEnvironmentVariables(Path.Combine(Configuration.TempPath, WFREERDP_EXE)); - VerifyExecutable(freeRdpPath); + + var freeRdpPath = Environment.ExpandEnvironmentVariables(Path.Combine(Configuration.TempPath, WFREERDP_EXE)); + if (!string.IsNullOrWhiteSpace(Configuration.Executable)) + { + var customPath = Environment.ExpandEnvironmentVariables(Configuration.Executable!); + if (File.Exists(customPath)) + { + freeRdpPath = customPath; + } + } + else + { + VerifyExecutable(freeRdpPath); + } var arguments = Configuration.GetArguments(); _process = new Process diff --git a/src/RoyalApps.Community.FreeRdp.WinForms/RoyalApps.Community.FreeRdp.WinForms.csproj b/src/RoyalApps.Community.FreeRdp.WinForms/RoyalApps.Community.FreeRdp.WinForms.csproj index c3931ce..56ba415 100644 --- a/src/RoyalApps.Community.FreeRdp.WinForms/RoyalApps.Community.FreeRdp.WinForms.csproj +++ b/src/RoyalApps.Community.FreeRdp.WinForms/RoyalApps.Community.FreeRdp.WinForms.csproj @@ -11,7 +11,7 @@ README.md RoyalApps_1024.png MIT - 1.2.2 + 1.2.3 enable 10 true