Added backspace and Alt, Shift, Ctrl to the remote keyboard

This commit is contained in:
lukeIam committed 2014-11-11 22:05:43 +01:00
1 parent 53153774b7
commit e10de6ca0e
8 files changed
+86 -31

No files matched your search

+2 -2
View File
@@ -58,7 +58,7 @@ namespace ServerLib
CServer.SendKeyEvent(key); 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)) if (!_CheckRight(EUserRights.UseKeyboard))
return; return;
@@ -72,7 +72,7 @@ namespace ServerLib
} }
} }
else else
CServer.SendKeyStringEvent(keyString); CServer.SendKeyStringEvent(keyString, isShiftPressed, isAltPressed, isCtrlPressed);
} }
#region profile #region profile
+1 -1
View File
@@ -26,7 +26,7 @@ using System.Text.RegularExpressions;
namespace ServerLib namespace ServerLib
{ {
public delegate bool SendKeyEventDelegate(string key); 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 #region profile
public delegate SProfileData GetProfileDataDelegate(int profileId, bool isReadonly); public delegate SProfileData GetProfileDataDelegate(int profileId, bool isReadonly);
+2 -2
View File
@@ -32,8 +32,8 @@ namespace ServerLib
[OperationContract, WebInvoke(Method = "GET", [OperationContract, WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sendKeyStringEvent?keyString={keyString}")] UriTemplate = "/sendKeyStringEvent?keyString={keyString}&shift={isShiftPressed}&alt={isAltPressed}&ctrl={isCtrlPressed}")]
void SendKeyStringEvent(string keyString); void SendKeyStringEvent(string keyString, bool isShiftPressed = false, bool isAltPressed = false, bool isCtrlPressed = false);
#region profile #region profile
[OperationContract, WebInvoke(Method = "GET", [OperationContract, WebInvoke(Method = "GET",
+32 -21
View File
@@ -126,9 +126,11 @@ namespace Vocaluxe.Base.Server
private static bool _SendKeyEvent(string key) private static bool _SendKeyEvent(string key)
{ {
bool result = false; bool result = false;
if (!string.IsNullOrEmpty(key)) var lowerKey = key.ToLower();
if (!string.IsNullOrEmpty(lowerKey))
{ {
switch (key.ToLower()) switch (lowerKey)
{ {
case "up": case "up":
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.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)); Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.Tab));
result = true; result = true;
break; break;
case "backspace":
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, Keys.Back));
result = true;
break;
default: default:
foreach (char c in key) if (lowerKey.StartsWith("f"))
{ {
bool shift = true; var numberString = lowerKey.Substring(1);
char keyChar; int number;
if (char.ToUpper(c) != c) Keys fKey;
{
keyChar = char.ToUpper(c);
shift = false;
}
else
keyChar = c;
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; Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, fKey));
if (shift)
keys |= Keys.Shift;
Controller.AddKeyEvent(new SKeyEvent(ESender.Keyboard, false, false, false, false, Char.MinValue, keys));
result = true; result = true;
} }
} }
@@ -187,13 +186,17 @@ namespace Vocaluxe.Base.Server
return result; return result;
} }
private static bool _sendKeyStringEvent(string keyString) private static bool _sendKeyStringEvent(string keyString, bool isShiftPressed , bool isAltPressed , bool isCtrlPressed )
{ {
bool result = false; bool result = false;
foreach (var key in keyString.ToCharArray()) 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; result = true;
} }
@@ -206,7 +209,15 @@ namespace Vocaluxe.Base.Server
if (!Enum.TryParse(keyText.ToString(), true, out key)) 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; return key;
+18 -1
View File
@@ -297,8 +297,25 @@
<div class="ui-block-c"> <div class="ui-block-c">
<a data-role="button" id="keyboardButtonReturn" data-i18n="keyboardButtonReturn"></a> <a data-role="button" id="keyboardButtonReturn" data-i18n="keyboardButtonReturn"></a>
</div> </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"> <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> </div>
<div> <div>
+19 -2
View File
@@ -686,12 +686,13 @@
}); });
}); });
$('#keyboardButtonP').click(function () { $('#keyboardButtonBackspace').click(function () {
request({ request({
url: "sendKeyEvent?key=p" url: "sendKeyEvent?key=backspace"
}); });
}); });
$('#keyboardButtonKeys').keyup(function (e) { $('#keyboardButtonKeys').keyup(function (e) {
var text = $('#keyboardButtonKeys')[0].value; var text = $('#keyboardButtonKeys')[0].value;
@@ -700,10 +701,26 @@
return; 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({ request({
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
type: "GET", type: "GET",
url: "sendKeyStringEvent?keyString=" + text url: "sendKeyStringEvent?keyString=" + text
+ "&shift=" + $('#keyboardButtonShift').is(':checked')
+ "&alt=" + $('#keyboardButtonAlt').is(':checked')
+ "&ctrl=" + $('#keyboardButtonCtrl').is(':checked')
}).fail(function () { }).fail(function () {
$('#keyboardButtonKeys')[0].value = text + $('#keyboardButtonKeys')[0].value; $('#keyboardButtonKeys')[0].value = text + $('#keyboardButtonKeys')[0].value;
}); });
+6 -1
View File
@@ -76,5 +76,10 @@
"discoverConnectServerAddress": "Serveradresse:", "discoverConnectServerAddress": "Serveradresse:",
"discoverConnectButton": "Verbinden", "discoverConnectButton": "Verbinden",
"Checking...": "Prüfen...", "Checking...": "Prüfen...",
"timeout": "Zeitüberschreitung" "timeout": "Zeitüberschreitung",
"keyboardButtonShift": "Umschalt",
"keyboardButtonAlt": "Alt",
"keyboardButtonCtrl": "Steuerung",
"keyboardButtonFunct": "Funktion",
"keyboardButtonBackspace": "Rücktaste"
} }
+6 -1
View File
@@ -76,5 +76,10 @@
"discoverConnectServerAddress": "Serveraddress:", "discoverConnectServerAddress": "Serveraddress:",
"discoverConnectButton": "Connect", "discoverConnectButton": "Connect",
"Checking...": "Checking...", "Checking...": "Checking...",
"timeout": "Timeout" "timeout": "Timeout",
"keyboardButtonShift": "Shift",
"keyboardButtonAlt": "Alt",
"keyboardButtonCtrl": "Control",
"keyboardButtonFunct": "Function",
"keyboardButtonBackspace": "Backspace"
} }