I would go about this a little differently. I would run the current langauge settings at startup, than change it to the desired one.
At an even alt + offset, I would just return it back to the correct type again.
With a grid should be easy to do.
Here is a short article on how to manipulate languages: How to change the input language programmatically
And the main class in msdna: InputLanguage Documentation
alt + Windows, .
Windows.