Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I work with 2, sometimes 3 different languages on my XP boxes.

Windows XP chooses input language on a per-application basis. That is, when I switch to a different application, Windows sometimes changes the input language because it remembers that I used that language last time I used that app.

I don't like that. I want Windows to maintain one global input language, and change it only when I hit Alt-Shift.

Is it possible to hack Windows to behave like that? Maybe with AutoHotKey?

share|improve this question
add comment

2 Answers

The only way I could see this working, is by only having one keyboard layout installed at a time. For example, when you want to only use Romanian, you would delete all other keyboard layouts...

AutoHotKey can be used for creating shortcuts to quickly delete and install keyboard layouts.

Post comments with any additional questions or concerns regarding my answer.

share|improve this answer
    
I actually happen to have a script that does that. But it's not that fast (around 1-2 secs) nor flexible, cause it pops up the dialog for adding languages and manually navigates it with the keyboard. –  Ram Rachum Dec 24 '11 at 12:45
    
If you know how to make such a script that talks directly with Windows instead of with the dialogs, that might do. –  Ram Rachum Dec 24 '11 at 12:45
add comment
up vote 0 down vote accepted

Here's the AHK script I've been using for this for maybe a year now:

language := 0

;;; Forced Hebrew: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;                                                                            ;
#z::
    language := 0
    Return

+#z::
    language := 1
    Return


#if language=1 and not GetKeyState("Capslock", "T")  
    `:: SendInput {;}
    q:: SendInput /
    w:: SendInput '
    e:: SendInput ק
    r:: SendInput ר
    t:: SendInput א
    y:: SendInput ט
    u:: SendInput ו
    i:: SendInput ן
    o:: SendInput ם
    p:: SendInput פ
    a:: SendInput ש
    s:: SendInput ד
    d:: SendInput ג
    f:: SendInput כ
    g:: SendInput ע
    h:: SendInput י
    j:: SendInput ח
    k:: SendInput ל
    l:: SendInput ך
    `;:: SendInput ף
    ':: SendInput `,
    z:: SendInput ז
    x:: SendInput ס
    c:: SendInput ב
    v:: SendInput ה
    b:: SendInput נ
    n:: SendInput מ
    m:: SendInput צ
    ,:: SendInput ת
    .:: SendInput ץ
    /:: SendInput .

    (:: SendInput )
    ):: SendInput (
    [:: SendInput ]
    ]:: SendInput [
    >:: SendInput <
    <:: SendInput >

#if
;                                                                            ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.