From bdd9afcedbe4dd94cd92af5d141cbaafa9fc7dec Mon Sep 17 00:00:00 2001 From: Jared Goodwin Date: Tue, 12 May 2020 21:21:47 -0700 Subject: [PATCH] Change Windows Session tweaks. --- Agent/Services/AppLauncher.cs | 6 +++--- Agent/Services/DeviceSocket.cs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Agent/Services/AppLauncher.cs b/Agent/Services/AppLauncher.cs index cede2e69..f4900508 100644 --- a/Agent/Services/AppLauncher.cs +++ b/Agent/Services/AppLauncher.cs @@ -119,7 +119,7 @@ namespace Remotely.Agent.Services await hubConnection.SendAsync("DisplayMessage", "Remote control failed to start on target device.", "Failed to start remote control.", requesterID); } } - public async Task RestartScreenCaster(List viewerIDs, string serviceID, string requesterID, HubConnection hubConnection) + public async Task RestartScreenCaster(List viewerIDs, string serviceID, string requesterID, HubConnection hubConnection, int targetSessionID = -1) { try { @@ -139,8 +139,8 @@ namespace Remotely.Agent.Services await Task.Delay(1000); var result = Win32Interop.OpenInteractiveProcess(rcBinaryPath + $" -mode Unattended -requester {requesterID} -serviceid {serviceID} -deviceid {ConnectionInfo.DeviceID} -host {ConnectionInfo.Host} -relaunch true -viewers {String.Join(",", viewerIDs)}", - targetSessionId: -1, - forceConsoleSession: Shlwapi.IsOS(OsType.OS_ANYSERVER) ? true : false, + targetSessionId: targetSessionID, + forceConsoleSession: Shlwapi.IsOS(OsType.OS_ANYSERVER) && targetSessionID == -1 ? true : false, desktopName: "default", hiddenWindow: true, out _); diff --git a/Agent/Services/DeviceSocket.cs b/Agent/Services/DeviceSocket.cs index 96cd6dd2..7fe62400 100644 --- a/Agent/Services/DeviceSocket.cs +++ b/Agent/Services/DeviceSocket.cs @@ -163,9 +163,9 @@ namespace Remotely.Agent.Services var fileIDs = JsonSerializer.Deserialize(Encoding.UTF8.GetString(response)); await HubConnection.SendAsync("DownloadFile", fileIDs[0], senderConnectionID); }); - HubConnection.On("ChangeWindowsSession", async (string serviceID, string requesterID, int sessionID) => + HubConnection.On("ChangeWindowsSession", async (string serviceID, string viewerID, int targetSessionID) => { - await AppLauncher.LaunchRemoteControl(sessionID, requesterID, serviceID, HubConnection); + await AppLauncher.RestartScreenCaster(new List() { viewerID }, serviceID, viewerID, HubConnection, targetSessionID); }); HubConnection.On("ExecuteCommand", (async (string mode, string command, string commandID, string senderConnectionID) => {