I commonly switch between typing in qwerty and dvorak, and one of the biggest inconveniences in Windows is that although there is a hot key to switch between input languages, it only changes the input language for the window that has focus.
I would like to create a script to change the input language for me and have the script run when I press a hot key. I have been experimenting with different ways to do this. The reason I need this is because I prefer to type in dvorak all the time at work, but cannot set the system default to dvorak in case someone else needs to use my system. Once the script is done I can upload it for all to download and use.
One solution I found online was using the SystemParametersInfo function. However I could not find adequate documentation to get this working from the MSDN library. I stopped searching after reading several posts by others who were unable to get this function working, some stating that it requires a system reboot.
Edit - the proceeding attempt failed because it seems this method only works for the current window (and although I was able to change the input language, it did not appear to have any effect).
Another (slightly more promising) solution I found was setting InputLanguage.CurrentInputLanguage. However again there is very little documentation on it's usage for setting (more for just getting). The online guides I found for this discussed using InputLanguage.FromCulture() to set the language. ie InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("ZH-CN"));
however US-Dvorak does not appear to be in the list of supported cultures.
Does anyone have any ideas? Thanks!
I found this program: Works great, and the source code is provided. I might use it as a resource when trying to develop other programs to "fix" Windows' awful functionality.
Download: http://www.tomseddon.plus.com/kbswitch/
If you're using Windows 7 you can drag it out of the "Pop-Up Box" in the bottom right corner of the screen, so that the icon sits in the taskbar, near the system time. I haven't tried rebooting, I put the program in the start-up folder thought, so it should work.