Refactored out deprecated keyboradEvent.keyCode property. Linux updater fixes.

This commit is contained in:
Jared Goodwin 2019-03-17 11:28:21 -07:00
parent 6e687aee74
commit 4fcff09a53
19 changed files with 211 additions and 189 deletions

View File

@ -26,7 +26,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" Version="2.2.2" />
<PackageReference Include="Microsoft.Management.Infrastructure" Version="1.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="1.1.0" />
<PackageReference Include="Microsoft.PowerShell.Commands.Diagnostics" Version="6.1.3" />

View File

@ -46,24 +46,28 @@ namespace Remotely_Agent.Services
Logger.Write($"Service Updater: Downloading update. Current Version: {thisVersion}. Latest Version: {latestVersion}.");
var fileName = OSUtils.CoreZipFileName;
var tempFile = Path.Combine(Path.GetTempPath(), fileName);
var tempFolder = Path.Combine(Path.GetTempPath(), "Remotely_Update");
if (File.Exists(tempFile))
{
File.Delete(tempFile);
}
if (Directory.Exists(tempFolder))
{
Directory.Delete(tempFolder, true);
}
wc.DownloadFile(new Uri(Utilities.GetConnectionInfo().Host + $"/Downloads/{fileName}"), tempFile);
Logger.Write($"Service Updater: Extracting files.");
if (OSUtils.IsWindows)
{
ZipFile.ExtractToDirectory(tempFile, Path.Combine(Path.GetTempPath(), "Remotely_Update"), true);
ZipFile.ExtractToDirectory(tempFile, tempFolder, true);
}
else if (OSUtils.IsLinux)
{
Process.Start("sudo", $"rm -r {Path.Combine(Path.GetTempPath(), "Remotely_Update")}");
Process.Start("sudo", "apt-get install unzip").WaitForExit();
Process.Start("sudo", $"unzip -o {tempFile} -d {Path.Combine(Path.GetTempPath(), "Remotely_Update")}").WaitForExit();
Process.Start("sudo", $"chmod -R 777 {Path.Combine(Path.GetTempPath(), "Remotely_Update")}").WaitForExit();
Process.Start("sudo", $"unzip -o {tempFile} -d {tempFolder}").WaitForExit();
Process.Start("sudo", $"chmod -R 777 {tempFolder}").WaitForExit();
Process.Start("sudo", $"chmod +x {Path.Combine(Path.GetTempPath(), "Remotely_Update", "Remotely_Agent")}").WaitForExit();
}
@ -181,7 +185,7 @@ namespace Remotely_Agent.Services
}
else if (OSUtils.IsLinux)
{
Process.Start("sudo", "systemctl restart remotely-agent").WaitForExit();
Process.Start("sudo", "systemctl start remotely-agent").WaitForExit();
}
Environment.Exit(0);
}

View File

@ -1235,6 +1235,9 @@ namespace Remotely_Library.Win32_Classes
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
[DllImport("user32.dll")]
public static extern short VkKeyScan(char ch);
#endregion
}
}

View File

@ -210,6 +210,7 @@ namespace Remotely_Library.Win32
CloseDesktop(inputDesktop);
return deskName;
}
// Remove trailing empty bytes in the buffer.
private static byte[] TrimBytes(byte[] bytes)
{

View File

@ -44,106 +44,31 @@ namespace Remotely_ScreenCast.Sockets
Program.ScreenCastRequested?.Invoke(null, new Tuple<string, string>(viewerID, requesterName));
});
hubConnection.On("KeyDown", (int keyCode, string viewerID) =>
hubConnection.On("KeyDown", (string key, string viewerID) =>
{
if (Program.Viewers.TryGetValue(viewerID, out var viewer) && viewer.HasControl)
{
//var converter = new KeysConverter();
//try
//{
// var key = (Keys)converter.ConvertFromString(keyCode.ToString());
// Win32Interop.SendKeyDown(key);
//}
//catch
//{
// Logger.Write($"Failed to convert key {keyCode}.");
//}
// For colon/semicolon.
if (keyCode == 59)
{
keyCode = 186;
}
// For minus.
else if (keyCode == 45)
{
keyCode = 189;
}
// For plus.
else if (keyCode == 61)
{
keyCode = 187;
}
var keyCode = Win32Interop.ConvertJavaScriptKeyToVirtualKey(key);
Win32Interop.SendKeyDown((User32.VirtualKey)keyCode);
}
});
hubConnection.On("KeyUp", (int keyCode, string viewerID) =>
hubConnection.On("KeyUp", (string key, string viewerID) =>
{
if (Program.Viewers.TryGetValue(viewerID, out var viewer) && viewer.HasControl)
{
//var converter = new KeysConverter();
//try
//{
// var key = (Keys)converter.ConvertFromString(keyCode.ToString());
// Win32Interop.SendKeyDown(key);
//}
//catch
//{
// Logger.Write($"Failed to convert key {keyCode}.");
//}
// For colon/semicolon.
if (keyCode == 59)
{
keyCode = 186;
}
// For minus.
else if (keyCode == 45)
{
keyCode = 189;
}
// For plus.
else if (keyCode == 61)
{
keyCode = 187;
}
var keyCode = Win32Interop.ConvertJavaScriptKeyToVirtualKey(key);
Win32Interop.SendKeyUp((User32.VirtualKey)keyCode);
}
});
hubConnection.On("KeyPress", (int keyCode, string viewerID) =>
hubConnection.On("KeyPress", async (string key, string viewerID) =>
{
if (Program.Viewers.TryGetValue(viewerID, out var viewer) && viewer.HasControl)
{
//var converter = new KeysConverter();
//try
//{
// var key = (Keys)converter.ConvertFromString(keyCode.ToString());
// Win32Interop.SendKeyDown(key);
// Win32Interop.SendKeyUp(key);
//}
//catch
//{
// Logger.Write($"Failed to convert key {keyCode}.");
//}
// For colon/semicolon.
if (keyCode == 59)
{
keyCode = 186;
}
// For minus.
else if (keyCode == 45)
{
keyCode = 189;
}
// For plus.
else if (keyCode == 61)
{
keyCode = 187;
}
var keyCode = Win32Interop.ConvertJavaScriptKeyToVirtualKey(key);
Win32Interop.SendKeyDown((User32.VirtualKey)keyCode);
await Task.Delay(1);
Win32Interop.SendKeyUp((User32.VirtualKey)keyCode);
}
});

View File

@ -1235,6 +1235,9 @@ namespace Win32
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
[DllImport("user32.dll")]
public static extern short VkKeyScan(char ch);
#endregion
}
}

View File

@ -231,25 +231,112 @@ namespace Win32
CloseDesktop(inputDesktop);
return desktopName;
}
// Remove trailing empty bytes in the buffer.
private static byte[] TrimBytes(byte[] bytes)
public static short ConvertJavaScriptKeyToVirtualKey(string key)
{
// Loop backwards through array until the first non-zero byte is found.
var firstZero = 0;
for (int i = bytes.Length - 1; i >= 0; i--)
short keyCode;
switch (key)
{
if (bytes[i] != 0)
{
firstZero = i + 1;
case "Down":
case "ArrowDown":
keyCode = (short)VirtualKey.DOWN;
break;
case "Up":
case "ArrowUp":
keyCode = (short)VirtualKey.UP;
break;
case "Left":
case "ArrowLeft":
keyCode = (short)VirtualKey.LEFT;
break;
case "Right":
case "ArrowRight":
keyCode = (short)VirtualKey.RIGHT;
break;
case "Enter":
keyCode = (short)VirtualKey.RETURN;
break;
case "Esc":
case "Escape":
keyCode = (short)VirtualKey.ESCAPE;
break;
case "Alt":
keyCode = (short)VirtualKey.MENU;
break;
case "Control":
keyCode = (short)VirtualKey.CONTROL;
break;
case "Shift":
keyCode = (short)VirtualKey.SHIFT;
break;
case "PAUSE":
keyCode = (short)VirtualKey.PAUSE;
break;
case "BREAK":
keyCode = (short)VirtualKey.PAUSE;
break;
case "Delete":
keyCode = (short)VirtualKey.DELETE;
break;
case "Home":
keyCode = (short)VirtualKey.HOME;
break;
case "PageUp":
keyCode = (short)VirtualKey.PRIOR;
break;
case "PageDown":
keyCode = (short)VirtualKey.NEXT;
break;
case "NumLock":
keyCode = (short)VirtualKey.NUMLOCK;
break;
case "Insert":
keyCode = (short)VirtualKey.INSERT;
break;
case "ScrollLock":
keyCode = (short)VirtualKey.SCROLL;
break;
case "F1":
keyCode = (short)VirtualKey.F1;
break;
case "F2":
keyCode = (short)VirtualKey.F2;
break;
case "F3":
keyCode = (short)VirtualKey.F3;
break;
case "F4":
keyCode = (short)VirtualKey.F4;
break;
case "F5":
keyCode = (short)VirtualKey.F5;
break;
case "F6":
keyCode = (short)VirtualKey.F6;
break;
case "F7":
keyCode = (short)VirtualKey.F7;
break;
case "F8":
keyCode = (short)VirtualKey.F8;
break;
case "F9":
keyCode = (short)VirtualKey.F9;
break;
case "F10":
keyCode = (short)VirtualKey.F10;
break;
case "F11":
keyCode = (short)VirtualKey.F11;
break;
case "F12":
keyCode = (short)VirtualKey.F12;
break;
default:
keyCode = User32.VkKeyScan(Convert.ToChar(key));
break;
}
}
if (firstZero == 0)
{
throw new Exception("Byte array is empty.");
}
// Return non-empty bytes.
return bytes.Take(firstZero).ToArray();
return keyCode;
}
}
}

View File

@ -4,71 +4,71 @@
<button id="closeOSKButton">X</button>
</div>
<div class="osk-row">
<div class="osk-key" alt-key="~" keycode="192">`</div>
<div class="osk-key" alt-key="!" keycode="49">1</div>
<div class="osk-key" alt-key="@@" keycode="50">2</div>
<div class="osk-key" alt-key="#" keycode="51">3</div>
<div class="osk-key" alt-key="$" keycode="52">4</div>
<div class="osk-key" alt-key="%" keycode="53">5</div>
<div class="osk-key" alt-key="^" keycode="54">6</div>
<div class="osk-key" alt-key="&amp;" keycode="55">7</div>
<div class="osk-key" alt-key="*" keycode="56">8</div>
<div class="osk-key" alt-key="(" keycode="57">9</div>
<div class="osk-key" alt-key=")" keycode="48">0</div>
<div class="osk-key" alt-key="_" keycode="173">-</div>
<div class="osk-key" alt-key="+" keycode="61">=</div>
<div class="osk-key" alt-key="~">`</div>
<div class="osk-key" alt-key="!">1</div>
<div class="osk-key" alt-key="@@">2</div>
<div class="osk-key" alt-key="#">3</div>
<div class="osk-key" alt-key="$">4</div>
<div class="osk-key" alt-key="%">5</div>
<div class="osk-key" alt-key="^">6</div>
<div class="osk-key" alt-key="&amp;">7</div>
<div class="osk-key" alt-key="*">8</div>
<div class="osk-key" alt-key="(">9</div>
<div class="osk-key" alt-key=")">0</div>
<div class="osk-key" alt-key="_">-</div>
<div class="osk-key" alt-key="+">=</div>
</div>
<div class="osk-row">
<div class="osk-key" alt-key="Q" keycode="81">q</div>
<div class="osk-key" alt-key="W" keycode="87">w</div>
<div class="osk-key" alt-key="E" keycode="69">e</div>
<div class="osk-key" alt-key="R" keycode="82">r</div>
<div class="osk-key" alt-key="T" keycode="84">t</div>
<div class="osk-key" alt-key="Y" keycode="89">y</div>
<div class="osk-key" alt-key="U" keycode="85">u</div>
<div class="osk-key" alt-key="I" keycode="73">i</div>
<div class="osk-key" alt-key="O" keycode="79">o</div>
<div class="osk-key" alt-key="P" keycode="80">p</div>
<div class="osk-key" alt-key="{" keycode="219">[</div>
<div class="osk-key" alt-key="}" keycode="221">]</div>
<div class="osk-key" alt-key="|" keycode="220">\</div>
<div class="osk-key" alt-key="Q">q</div>
<div class="osk-key" alt-key="W">w</div>
<div class="osk-key" alt-key="E">e</div>
<div class="osk-key" alt-key="R">r</div>
<div class="osk-key" alt-key="T">t</div>
<div class="osk-key" alt-key="Y">y</div>
<div class="osk-key" alt-key="U">u</div>
<div class="osk-key" alt-key="I">i</div>
<div class="osk-key" alt-key="O">o</div>
<div class="osk-key" alt-key="P">p</div>
<div class="osk-key" alt-key="{">[</div>
<div class="osk-key" alt-key="}">]</div>
<div class="osk-key" alt-key="|">\</div>
</div>
<div class="osk-row">
<div class="osk-key" alt-key="A" keycode="65">a</div>
<div class="osk-key" alt-key="S" keycode="83">s</div>
<div class="osk-key" alt-key="D" keycode="68">d</div>
<div class="osk-key" alt-key="F" keycode="70">f</div>
<div class="osk-key" alt-key="G" keycode="71">g</div>
<div class="osk-key" alt-key="H" keycode="72">h</div>
<div class="osk-key" alt-key="J" keycode="74">j</div>
<div class="osk-key" alt-key="K" keycode="75">k</div>
<div class="osk-key" alt-key="L" keycode="76">l</div>
<div class="osk-key" alt-key=":" keycode="59">;</div>
<div class="osk-key" alt-key="&quot;" keycode="222">'</div>
<div class="osk-key wide-key-sm" keycode="13">Enter</div>
<div class="osk-key" alt-key="A">a</div>
<div class="osk-key" alt-key="S">s</div>
<div class="osk-key" alt-key="D">d</div>
<div class="osk-key" alt-key="F">f</div>
<div class="osk-key" alt-key="G">g</div>
<div class="osk-key" alt-key="H">h</div>
<div class="osk-key" alt-key="J">j</div>
<div class="osk-key" alt-key="K">k</div>
<div class="osk-key" alt-key="L">l</div>
<div class="osk-key" alt-key=":">;</div>
<div class="osk-key" alt-key="&quot;">'</div>
<div class="osk-key wide-key-sm">Enter</div>
</div>
<div class="osk-row">
<div id="shiftKey" class="osk-key wide-key-sm" keycode="16">Shift</div>
<div class="osk-key" alt-key="Z" keycode="90">z</div>
<div class="osk-key" alt-key="X" keycode="88">x</div>
<div class="osk-key" alt-key="C" keycode="67">c</div>
<div class="osk-key" alt-key="V" keycode="86">v</div>
<div class="osk-key" alt-key="B" keycode="66">b</div>
<div class="osk-key" alt-key="N" keycode="78">n</div>
<div class="osk-key" alt-key="M" keycode="77">m</div>
<div class="osk-key" alt-key="<" keycode="188">,</div>
<div class="osk-key" alt-key=">" keycode="190">.</div>
<div class="osk-key" alt-key="?" keycode="191">/</div>
<div id="shiftKey" class="osk-key wide-key-sm">Shift</div>
<div class="osk-key" alt-key="Z">z</div>
<div class="osk-key" alt-key="X">x</div>
<div class="osk-key" alt-key="C">c</div>
<div class="osk-key" alt-key="V">v</div>
<div class="osk-key" alt-key="B">b</div>
<div class="osk-key" alt-key="N">n</div>
<div class="osk-key" alt-key="M">m</div>
<div class="osk-key" alt-key="<">,</div>
<div class="osk-key" alt-key=">">.</div>
<div class="osk-key" alt-key="?">/</div>
</div>
<div class="osk-row">
<div id="ctrlKey" class="osk-key" keycode="17">Ctrl</div>
<div id="altKey" class="osk-key" keycode="18">Alt</div>
<div class="osk-key wide-key-lg" keycode="32">Space</div>
<div class="osk-key" keycode="37">Left</div>
<div class="osk-key" keycode="38">Up</div>
<div class="osk-key" keycode="40">Down</div>
<div class="osk-key" keycode="39">Right</div>
<div class="osk-key" keycode="8">Backspace</div>
<div id="ctrlKey" class="osk-key">Ctrl</div>
<div id="altKey" class="osk-key">Alt</div>
<div class="osk-key wide-key-lg">Space</div>
<div class="osk-key">Left</div>
<div class="osk-key">Up</div>
<div class="osk-key">Down</div>
<div class="osk-key">Right</div>
<div class="osk-key">Backspace</div>
</div>
</div>
<script src="~/scripts/RemoteControl/OSK.js" type="module"></script>

View File

@ -65,17 +65,17 @@ namespace Remotely_Server.Services
await DeviceHub.Clients.Client(serviceID).SendAsync("CtrlAltDel");
}
public async Task KeyDown(int key)
public async Task KeyDown(string key)
{
await RCDeviceHub.Clients.Client(ScreenCasterID).SendAsync("KeyDown", key, Context.ConnectionId);
}
public async Task KeyPress(int key)
public async Task KeyPress(string key)
{
await RCDeviceHub.Clients.Client(ScreenCasterID).SendAsync("KeyPress", key, Context.ConnectionId);
}
public async Task KeyUp(int key)
public async Task KeyUp(string key)
{
await RCDeviceHub.Clients.Client(ScreenCasterID).SendAsync("KeyUp", key, Context.ConnectionId);
}

View File

@ -1 +1 @@
2019.03.15.1813
2019.03.17.1106

View File

@ -14,14 +14,14 @@ window.addEventListener("load", (ev) => {
if (key.id == "shiftKey" || key.id == "ctrlKey" || key.id == "altKey") {
key.classList.toggle("toggled");
if (key.classList.contains("toggled")) {
RemoteControl.RCBrowserSockets.SendKeyDown(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyDown(key.innerHTML);
}
else {
RemoteControl.RCBrowserSockets.SendKeyUp(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyUp(key.innerHTML);
}
}
else {
RemoteControl.RCBrowserSockets.SendKeyPress(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyPress(key.innerHTML);
}
});
});

View File

@ -1 +1 @@
{"version":3,"file":"OSK.js","sourceRoot":"","sources":["OSK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC,EAAE;IAClC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,EAAE;QAC/C,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAC,EAAE;YAChC,IAAI,GAAG,CAAC,EAAE,IAAI,UAAU,EAAE;gBACtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA,EAAE;oBACpD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC/B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;oBAC3B,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAA;aACL;YACD,IAAI,GAAG,CAAC,EAAE,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,IAAI,QAAQ,EAAC;gBAClE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACnC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACnF;qBACI;oBACD,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACjF;aACJ;iBACI;gBACD,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACpF;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"}
{"version":3,"file":"OSK.js","sourceRoot":"","sources":["OSK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC,EAAE;IAClC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,EAAE;QAC/C,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAC,EAAE;YAChC,IAAI,GAAG,CAAC,EAAE,IAAI,UAAU,EAAE;gBACtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA,EAAE;oBACpD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC7C,IAAI,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;oBAC/B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;oBAC3B,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAA;aACL;YACD,IAAI,GAAG,CAAC,EAAE,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,IAAI,GAAG,CAAC,EAAE,IAAI,QAAQ,EAAC;gBAClE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACnC,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC7D;qBACI;oBACD,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC3D;aACJ;iBACI;gBACD,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aAC9D;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAA;IACF,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACrE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAC"}

View File

@ -15,14 +15,14 @@ window.addEventListener("load", (ev)=>{
if (key.id == "shiftKey" || key.id == "ctrlKey" || key.id == "altKey"){
key.classList.toggle("toggled");
if (key.classList.contains("toggled")) {
RemoteControl.RCBrowserSockets.SendKeyDown(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyDown(key.innerHTML);
}
else {
RemoteControl.RCBrowserSockets.SendKeyUp(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyUp(key.innerHTML);
}
}
else {
RemoteControl.RCBrowserSockets.SendKeyPress(Number(key.getAttribute("keycode")));
RemoteControl.RCBrowserSockets.SendKeyPress(key.innerHTML);
}
});
})

View File

@ -65,14 +65,14 @@ export class RCBrowserSockets {
SendMouseWheel(deltaX, deltaY) {
this.Connection.invoke("MouseWheel", deltaX, deltaY);
}
SendKeyDown(keyCode) {
this.Connection.invoke("KeyDown", keyCode);
SendKeyDown(key) {
this.Connection.invoke("KeyDown", key);
}
SendKeyUp(keyCode) {
this.Connection.invoke("KeyUp", keyCode);
SendKeyUp(key) {
this.Connection.invoke("KeyUp", key);
}
SendKeyPress(keyCode) {
this.Connection.invoke("KeyPress", keyCode);
SendKeyPress(key) {
this.Connection.invoke("KeyPress", key);
}
SendCtrlAltDel() {
this.Connection.invoke("CtrlAltDel", RemoteControl.ServiceID);

File diff suppressed because one or more lines are too long

View File

@ -72,14 +72,14 @@ export class RCBrowserSockets {
SendMouseWheel(deltaX: number, deltaY: number): any {
this.Connection.invoke("MouseWheel", deltaX, deltaY);
}
SendKeyDown(keyCode: number): any {
this.Connection.invoke("KeyDown", keyCode);
SendKeyDown(key: string): any {
this.Connection.invoke("KeyDown", key);
}
SendKeyUp(keyCode: number): any {
this.Connection.invoke("KeyUp", keyCode);
SendKeyUp(key: string): any {
this.Connection.invoke("KeyUp", key);
}
SendKeyPress(keyCode: number): any {
this.Connection.invoke("KeyPress", keyCode);
SendKeyPress(key: string): any {
this.Connection.invoke("KeyPress", key);
}
SendCtrlAltDel() {

View File

@ -217,14 +217,14 @@ export function ApplyInputHandlers(sockets) {
return;
}
e.preventDefault();
sockets.SendKeyDown(e.keyCode);
sockets.SendKeyDown(e.key);
});
window.addEventListener("keyup", function (e) {
if (document.querySelector("input:focus")) {
return;
}
e.preventDefault();
sockets.SendKeyUp(e.keyCode);
sockets.SendKeyUp(e.key);
});
window.ondragover = function (e) {
e.preventDefault();

File diff suppressed because one or more lines are too long

View File

@ -231,14 +231,14 @@ export function ApplyInputHandlers(sockets: RCBrowserSockets) {
return;
}
e.preventDefault();
sockets.SendKeyDown(e.keyCode);
sockets.SendKeyDown(e.key);
});
window.addEventListener("keyup", function (e) {
if (document.querySelector("input:focus")) {
return;
}
e.preventDefault();
sockets.SendKeyUp(e.keyCode);
sockets.SendKeyUp(e.key);
});
window.ondragover = function (e) {