最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

windows - Get the current keyboard layout language in JavaScript - Stack Overflow

programmeradmin2浏览0评论

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
Add a ment  | 

2 Answers 2

Reset to default 3

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;
}

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.

发布评论

评论列表(0)

  1. 暂无评论