Added backspace and Alt, Shift, Ctrl to the remote keyboard
This commit is contained in:
1 parent
53153774b7
commit
e10de6ca0e
8 files changed
+86
-31
No files matched your search
@@ -58,7 +58,7 @@ namespace ServerLib
|
||||
CServer.SendKeyEvent(key);
|
||||
}
|
||||
|
||||
public void SendKeyStringEvent(string keyString)
|
||||
public void SendKeyStringEvent(string keyString, bool isShiftPressed = false, bool isAltPressed = false, bool isCtrlPressed = false)
|
||||
{
|
||||
if (!_CheckRight(EUserRights.UseKeyboard))
|
||||
return;
|
||||
@@ -72,7 +72,7 @@ namespace ServerLib
|
||||
}
|
||||
}
|
||||
else
|
||||
CServer.SendKeyStringEvent(keyString);
|
||||
CServer.SendKeyStringEvent(keyString, isShiftPressed, isAltPressed, isCtrlPressed);
|
||||
}
|
||||
|
||||
#region profile
|
||||
|
||||
@@ -26,7 +26,7 @@ using System.Text.RegularExpressions;
|
||||
namespace ServerLib
|
||||
{
|
||||
public delegate bool SendKeyEventDelegate(string key);
|
||||
public delegate bool SendKeyStringEventDelegate(string keyString);
|
||||
public delegate bool SendKeyStringEventDelegate(string keyString, bool isShiftPressed , bool isAltPressed , bool isCtrlPressed);
|
||||
|
||||
#region profile
|
||||
public delegate SProfileData GetProfileDataDelegate(int profileId, bool isReadonly);
|
||||
|
||||
@@ -32,8 +32,8 @@ namespace ServerLib
|
||||
|
||||
[OperationContract, WebInvoke(Method = "GET",
|
||||
ResponseFormat = WebMessageFormat.Json,
|
||||
UriTemplate = "/sendKeyStringEvent?keyString={keyString}")]
|
||||
void SendKeyStringEvent(string keyString);
|
||||
UriTemplate = "/sendKeyStringEvent?keyString={keyString}&shift={isShiftPressed}&alt={isAltPressed}&ctrl={isCtrlPressed}")]
|
||||
void SendKeyStringEvent(string keyString, bool isShiftPressed = false, bool isAltPressed = false, bool isCtrlPressed = false);
|
||||
|
||||
#region profile
|
||||
[OperationContract, WebInvoke(Method = "GET",
|
||||
|
||||
@@ -126,9 +126,11 @@ namespace Vocaluxe.Base.Server
|
||||
private static bool _SendKeyEvent(string key)
|
||||
{
|
||||
bool result = false;
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
var lowerKey = key.ToLower();
|
||||
|
||||
if (!string.IsNullOrEmpty(lowerKey))
|
||||
{
|
||||
switch (key.ToLower())
|
||||
switch (lowerKey)
|
||||
{
|
||||
case "up":
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.Up));
|
||||
@@ -158,25 +160,22 @@ namespace Vocaluxe.Base.Server
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.Tab));
|
||||
result = true;
|
||||
break;
|
||||
case "backspace":
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.Back));
|
||||
result = true;
|
||||
break;
|
||||
default:
|
||||
foreach (char c in key)
|
||||
if (lowerKey.StartsWith("f"))
|
||||
{
|
||||
bool shift = true;
|
||||
char keyChar;
|
||||
if (char.ToUpper(c) != c)
|
||||
{
|
||||
keyChar = char.ToUpper(c);
|
||||
shift = false;
|
||||
}
|
||||
else
|
||||
keyChar = c;
|
||||
var numberString = lowerKey.Substring(1);
|
||||
int number;
|
||||
Keys fKey;
|
||||
|
||||
if ((keyChar >= '0' && keyChar <= '9') || (keyChar >= 'A' && keyChar <= 'Z'))
|
||||
if (Int32.TryParse(numberString, out number) && number >= 1
|
||||
&& number <= 12
|
||||
&& Enum.TryParse("F" + number, true, out fKey))
|
||||
{
|
||||
Keys keys = (Keys)keyChar;
|
||||
if (shift)
|
||||
keys |= Keys.Shift;
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, keys));
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, fKey));
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
@@ -187,13 +186,17 @@ namespace Vocaluxe.Base.Server
|
||||
return result;
|
||||
}
|
||||
|
||||
private static bool _sendKeyStringEvent(string keyString)
|
||||
private static bool _sendKeyStringEvent(string keyString, bool isShiftPressed , bool isAltPressed , bool isCtrlPressed )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
|
||||
foreach (var key in keyString.ToCharArray())
|
||||
{
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, Char.IsUpper(key), false, true, key, _ParseKeys(key)));
|
||||
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, isAltPressed,
|
||||
Char.IsUpper(key) || isShiftPressed,
|
||||
isCtrlPressed, true,
|
||||
isShiftPressed?Char.ToUpper(key) :key,
|
||||
_ParseKeys(key)));
|
||||
result = true;
|
||||
}
|
||||
|
||||
@@ -206,7 +209,15 @@ namespace Vocaluxe.Base.Server
|
||||
|
||||
if (!Enum.TryParse(keyText.ToString(), true, out key))
|
||||
{
|
||||
key = Keys.None;
|
||||
switch (keyText)
|
||||
{
|
||||
case ' ':
|
||||
key = Keys.Space;
|
||||
break;
|
||||
default:
|
||||
key = Keys.None;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return key;
|
||||
|
||||
@@ -297,8 +297,25 @@
|
||||
<div class="ui-block-c">
|
||||
<a data-role="button" id="keyboardButtonReturn" data-i18n="keyboardButtonReturn"></a>
|
||||
</div>
|
||||
<div class="ui-block-a">
|
||||
<!--
|
||||
<fieldset data-role="controlgroup" data-type="horizontal">
|
||||
<input type="checkbox" name="keyboardButtonFunct" id="keyboardButtonFunct" />
|
||||
<label data-i18n="keyboardButtonFunct" for="keyboardButtonFunct"></label>
|
||||
</fieldset>-->
|
||||
</div>
|
||||
<div class="ui-block-b">
|
||||
<fieldset data-role="controlgroup" data-type="horizontal">
|
||||
<input type="checkbox" name="keyboardButtonShift" id="keyboardButtonShift" />
|
||||
<label data-i18n="keyboardButtonShift" for="keyboardButtonShift"></label>
|
||||
<input type="checkbox" name="keyboardButtonAlt" id="keyboardButtonAlt" />
|
||||
<label data-i18n="keyboardButtonAlt" for="keyboardButtonAlt"></label>
|
||||
<input type="checkbox" name="keyboardButtonCtrl" id="keyboardButtonCtrl" />
|
||||
<label data-i18n="keyboardButtonCtrl" for="keyboardButtonCtrl"></label>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="ui-block-c">
|
||||
<a data-role="button" id="keyboardButtonP">P</a>
|
||||
<a data-role="button" id="keyboardButtonBackspace" data-i18n="keyboardButtonBackspace"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -686,12 +686,13 @@
|
||||
});
|
||||
});
|
||||
|
||||
$('#keyboardButtonP').click(function () {
|
||||
$('#keyboardButtonBackspace').click(function () {
|
||||
request({
|
||||
url: "sendKeyEvent?key=p"
|
||||
url: "sendKeyEvent?key=backspace"
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$('#keyboardButtonKeys').keyup(function (e) {
|
||||
var text = $('#keyboardButtonKeys')[0].value;
|
||||
|
||||
@@ -700,10 +701,26 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* if ($('#keyboardButtonFunct').is(':checked')) {
|
||||
$('#keyboardButtonKeys')[0].value = text.splice(1) + $('#keyboardButtonKeys')[0].value;
|
||||
var numericElements = /^[0-9][0-9]?/.exec(text.charAt(0));
|
||||
if (parseInt(numericElements)) {
|
||||
request({
|
||||
url: "sendKeyEvent?key=F" + numericElements
|
||||
});
|
||||
}
|
||||
$("#keyboardButtonFunct").attr("checked", false).checkboxradio("refresh");
|
||||
}*/
|
||||
|
||||
request({
|
||||
contentType: "application/json;charset=utf-8",
|
||||
type: "GET",
|
||||
url: "sendKeyStringEvent?keyString=" + text
|
||||
+ "&shift=" + $('#keyboardButtonShift').is(':checked')
|
||||
+ "&alt=" + $('#keyboardButtonAlt').is(':checked')
|
||||
+ "&ctrl=" + $('#keyboardButtonCtrl').is(':checked')
|
||||
|
||||
}).fail(function () {
|
||||
$('#keyboardButtonKeys')[0].value = text + $('#keyboardButtonKeys')[0].value;
|
||||
});
|
||||
|
||||
@@ -76,5 +76,10 @@
|
||||
"discoverConnectServerAddress": "Serveradresse:",
|
||||
"discoverConnectButton": "Verbinden",
|
||||
"Checking...": "Prüfen...",
|
||||
"timeout": "Zeitüberschreitung"
|
||||
"timeout": "Zeitüberschreitung",
|
||||
"keyboardButtonShift": "Umschalt",
|
||||
"keyboardButtonAlt": "Alt",
|
||||
"keyboardButtonCtrl": "Steuerung",
|
||||
"keyboardButtonFunct": "Funktion",
|
||||
"keyboardButtonBackspace": "Rücktaste"
|
||||
}
|
||||
@@ -76,5 +76,10 @@
|
||||
"discoverConnectServerAddress": "Serveraddress:",
|
||||
"discoverConnectButton": "Connect",
|
||||
"Checking...": "Checking...",
|
||||
"timeout": "Timeout"
|
||||
"timeout": "Timeout",
|
||||
"keyboardButtonShift": "Shift",
|
||||
"keyboardButtonAlt": "Alt",
|
||||
"keyboardButtonCtrl": "Control",
|
||||
"keyboardButtonFunct": "Function",
|
||||
"keyboardButtonBackspace": "Backspace"
|
||||
}
|
||||
Reference in new issue
Block a user