I am using wshShell.SendKeys to input some text into web sites from an HTA, when my current keyboard layout is not English, the results of wshShell.SendKeys is unanticipated.
I want my function to check rather the language is English, otherwise send ALT+SHIFT to change it to English.. The hard part for me is to find a function that returns the current keyboard layout.
If anyone is familiar with a way doing it, I will be glad to know..
Thanks, Rotem
I am using wshShell.SendKeys to input some text into web sites from an HTA, when my current keyboard layout is not English, the results of wshShell.SendKeys is unanticipated.
I want my function to check rather the language is English, otherwise send ALT+SHIFT to change it to English.. The hard part for me is to find a function that returns the current keyboard layout.
If anyone is familiar with a way doing it, I will be glad to know..
Thanks, Rotem
Share Improve this question asked Dec 9, 2010 at 20:33 RotemRotem 4421 gold badge8 silver badges24 bronze badges 2- Not sure if any of this helps: stackoverflow./questions/1043339/… – epascarello Commented Dec 9, 2010 at 21:57
- Hi, the examples in the link are returning the browser / system language and not the current keyboard layout language. But thanks for helping! – Rotem Commented Dec 10, 2010 at 20:43
2 Answers
Reset to default 3Ok, I made it with 'Shadow Wizard''s help..
This is the code, if anyone want to know (=
Thanks!
var lastKeyPressed = 0;
function sendKey()
{
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.SendKeys( 'a' );
}
function getCurLayout()
{
sendKey();
setTimeout("lastKeyLang()",10);
}
function lastKeyLang()
{
if( lastKeyPressed == 97 )
alert( 'EN' );
else
alert( 'HE' );
}
document.onkeypress = saveLastKey;
function saveLastKey()
{
lastKeyPressed = window.event.keyCode;
}
Send "A" to textbox, read it back like this:
nValue = oTextbox.value.charCodeAt(0);
If nValue
is 65 layout is English otherwise it's not and probably ש
was sent instead.