Archive: Cannot add IME on the fly


Cannot add IME on the fly
I was trying to pack a windows IME (Chinese) using NSIS. To put it into language bar, I added a key into HKCU\Keyboard Layout\Preload and had to reboot to make it take effect.

Is there a way, such as SendMessage, to make it work without reboot?


Yes you can add keyboard layouts on the fly for a running thread. Check this Wiki page.
CF


Thanks CancerFace. That has been very helpful.

I haven't had a clue of how to use System::Call, which dll to call (user32 or shell32), what parameters to pass. It would be great if you could shed some light...


If you refer to the system plugin in general, a good start would be its help page.

Also, MSDN is a good source of information on the windows API. And then there are many examples of API usage on the web as well as on the NSIS forum.
Finally Google is your friend (especially groups)

Between those you should usually be able to find an answer, or at least to identify the function that you need to call.

Once you know what API function to use, then it is (usually) pretty straight forward to get the required parameters from MSDN.

There is a neat addon for firefox, a search engine that parses MSDN directly. Get it from here (search for MSDN Library), if you use firefox ...

Hope this helps,
CF


Originally posted by CancerFace

Hope this helps,
CF [/B]
Definitely. I am getting into it. Thanks.