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! :)
I was able to come up with a solution to my problem!
There are a few things I learned.
In the "ID", the portion of the number in front of the colon ("1009") represents the Region Keyboard ie English(Canada). The number after the colon ("00001009") is the actual language installed for that keyboard. "00001009" will actually target the "Canada French" under the Region keyboard of English(Canada)
Another thing that I learned is that the region codes on the MS site were not displayed properly, which is why I wasn't able to change the "Locale" properly. This link contains the values you need to use when changing the "Locale". US is GeoID=244
The other thing I ended up having to do was to create two different XML files and run them one after the other. For some reason, removing the English(Canada) keyboard and all of it's sublanguages then adding the English(US) keyboard in the same script was producing an error that was stopping the XML file from applying properly. I had to do the removal of the keyboards (I left the Format and Locale change) in one XML file and the adding of the US keyboard in another XML file.
Anyway, for anyone interested I will post my final XML files below. To run them I used the following commands in a batch file.
control intl.cpl,, /f:"<path_to_file>
"
(there is a space after the second comma)
First script to remove keyboards, change Format, and change Locale
Pay special attention to how the "ID" values are done, it illustrates what I was trying to explain above!
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences - Keyboard languages-->
<gs:InputPreferences>
<!--Beginning of en-CANADA-->
<!--Remove Canada French from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00001009"/>
<!--Remove Canadian MultiLingual Standard from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00011009"/>
<!--Remove US from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00000409"/>
<!--Beginning of en-US-->
<!--Add keyboard US(English)-->
<!--Please note that the command below was moved into another XML file. Reason being, it was causing an error-->
<!--that would stop the US keyboard from being installed properly.-->
<!--<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>-->
</gs:InputPreferences>
<!--location - Change location on Location tab to US-->
<gs:LocationPreferences>
<gs:GeoID Value="244"/>
</gs:LocationPreferences>
<!--User Locale - This changes formats to English(United States) ie M/dd/yyyy-->
<gs:UserLocale>
<gs:Locale Name="en-US" SetAsCurrent="true"/>
</gs:UserLocale>
</gs:GlobalizationServices>
This script will add in the US keyboard and set it as the system default keyboard
<!--User List-->
<gs:UserList>
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences - Keyboard languages-->
<gs:InputPreferences>
<!--Add keyboard US(English)-->
<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
That about sums it up.
Here are some additional helpful links:
http://msdn.microsoft.com/en-us/library/ms912389%28WinEmbedded.11%29.aspx
http://texhex.blogspot.com/2009/10/installing-and-configuring-language.html
http://msdn.microsoft.com/en-us/goglobal/bb896001
http://technet.microsoft.com/en-us/library/cc766503(WS.10).aspx
Best Answer
I had the same issue of it changing regions on me.
I right clicked the keyboard icon in the lower right taskbar and unchecked "auto adjust".
French screenshot: