Why does Windows 7 always automatically change the input or keyboard language?

I am wondering why Windows 7 always automatically changes my input or keyboard language.

I've a notebook with an integrated QWERTY keyboard English (United States). Traveling, I use that one but, additionally, I've my own as well as a much better keyboard at home which is a QWERTZ keyboard German (Germany). Thus, being at home, I'd like to use my QWERTZ keyboard.

Unfortunately, Windows 7 does not play along at this one. Every time, I start up my notebook, it is usually set to English (United States) but that's not the problem. In case, I'd use my notebook QWERTY keyboard English (United States), that's fine. However, if I start up my notebook and I'd like to use my QWERTZ keyboard German (Germany), I usually press ALT + Left Shift in order to switch from English (United States) to German (Germany) and Windows 7 switches the input language but only for the program that is currently open. If my input language is set to German (Germany) and I, e.g., open NotePad, Windows 7 automatically switches my input language to English (United States). This is very annoying since I've to change the input or keyboard language to German (Germany) every time I open up a new program.

Why doesn't Windows 7 stay with one input language if I changed it manually by pressing ALT + Left Shift? Why doesn't the manual change of the input or keyboard language apply for the whole Windows 7? Why does it only affect the currently opened program?

Since I've two keyboards with two different layouts, I seriously need to have both of the keyboards languages installed.

I tried both of the below settings in order to find a solution for my problem. Currently, I am using the first option, two input languages.

First option: two input languages:

enter image description here

Second option: two keyboard languages:

enter image description here


Solution 1:

Yet, I've not found out if it is possible to change the default input language via a shortcut or if it's possible to disable the regular fall back to the default input language when opening a new program, but I've found an alternative!

Googling the problem, I came across the following article written by Androgen Belkin: http://www.script-coding.info/AutoHotkey/AhkRussianEng.html

He explains that Russians always have a similar problem with their keyboards concerning the Russian and English language. Thus, he created a script that checks and switches on user input, if necessary, the default input language when Windows starts. The script can be found on the above link at the very bottom and has been written for AutoHotKey, a free keyboard macro program. Luckily, I am a devoted AutoHotKey user myself.

Instead of Russian and English, I adapted the script to check for the German and English default input language. It works errorless and is very handy because now I can set my default input language with ease :)

Furthermore, AutoHotKey supports compiling scripts into single executables. I don't want to withhold my script from everybody to whom it is as useful as to me.

Switching default input language [Germany (German) <> English (United States)]: http://www.megaupload.com/?d=A8HKEV4A

Filename: Switching_default_input_language_DE-EN.zip

Contents: (1) Switching_default_input_language.ahk (AutoHotKey script; for editing or re-compiling the script), (2) Switching_default_input_language.exe (stand-alone executable)

Have fun! :)

Solution 2:

When opening a new program, Windows seems to always use the default input language.

The default language can be changed in the General tab of Text Services and Input Languages screen.