2

wshShell.SendKeys を使用して、HTA から Web サイトにテキストを入力しています。現在のキーボード レイアウトが英語ではない場合、wshShell.SendKeys の結果は予期されません。

関数で言語が英語であることを確認したいのですが、それ以外の場合は ALT + SHIFT を送信して英語に変更します。私にとって難しいのは、現在のキーボード レイアウトを返す関数を見つけることです。

誰かがそれを行う方法に精通しているなら、私は喜んで知っています..

ありがとう、ロテム

4

2 に答える 2

3

わかりました、「Shadow Wizard」の助けを借りて作成しました..

誰かが知りたい場合は、これがコードです(=

ありがとう!

    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;
}
于 2010-12-11T13:15:28.420 に答える
0

「A」をテキストボックスに送信し、次のように読み返します。

nValue = oTextbox.value.charCodeAt(0);

が65の場合nValue、レイアウトは英語です。それ以外の場合はそうではなく、おそらくש代わりに送信されました。

于 2010-12-09T20:59:27.873 に答える