问题
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
回答1:
Ok, 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;
}
回答2:
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.
来源:https://stackoverflow.com/questions/4402849/get-the-current-keyboard-layout-language-in-javascript