Link to home
Start Free TrialLog in
Avatar of shacho
shacho

asked on

Controlling or Blocking IME in Windows XP

I am at wits end on this.  This bug has irked me for over a decade, but it comes and goes so I live with it.  I also have no choice.

Windows uses the "Input Method Editor" or IME to handle text input for languages where the keyboard alone is not sufficient to generate the characters.  Chinese, Japanese and Korean are examples.  The IME accepts text from the keyboard, assists in the conversion, and passes the values onto the target processes.  For applications that are "IME aware", such as Office, the input and conversion is seamless and inline, within the application.

Some office apps - notable Access - sometimes send input method change requests to the IME for no apparent reason when you're developing.  In particular, when I'm programming in the VBE, Access frequently just changes the input mode to Japanese spontaneously.  I'll be in English input mode when I switch from the VBE to the main interface, English mode there, then when I switch back to the VBE it suddenly changes to Japanese.  It's unbearably annoying.

Here's my question.  Is it possible to create a Windows service whose job it is to watch the IME and block change input method requests?  Or perhaps is there another viable solution?  I haven't developed services before and my understanding is weak, but I suspect that it's possible.  Here is a good reference on the subject.

http://msdn.microsoft.com/en-us/goglobal/bb688135.aspx

I have Visual Studio .Net as a development tool if it's usable for this purpose.
Alternatively, I would happily pay someone to develop it if there are any takers.

Mike
Avatar of appari
appari
Flag of India image

I too work on japanese OS with IME installed. I never experienced this behaviour.
Normally IME remebers the last setting it was within an application. suppose before leaving notepad you were in English mode opened Access and changed mode to Japanese, switching back to Notepad changes IME to English mode and switching again to Access changes IME to Japanese. Is this is the behaviour you dont want?

By the way are you working in Tokyo?
Avatar of shacho
shacho

ASKER

Normally - but not always.  And when it goes batty - it really goes.  Various Forms and ActiveX controls have IME properties that allow the developer to specify how the IME should be have when the loaded control is entered.  For example you can make the IME switch to Japanese general input mode, or full-width English input mode when the control is selected.  Sounds like a neat idea on the surface, but in my experience this was an ill-conceived design.  Mac OS, for example, does not expose input method control to the applications - only to the user.  If you're in Japanese mode in one application, you're in Japanese mode in all applications.  When the application has the ability to switch the input mode without telling you, it's more often confusing than not - especially if you're multitasking a lot.

As an experiment I tried installing a 3rd party IME from JustSystems called ATOK.  There was something wrong with the permissions so I couldn't get it to work, but interestingly when I tried to open a table for the first time in Access, ATOK rattled off the permissions error three times in a row - which clearly demonstrates that Access is sending messages to the IME Window - messages that perhaps could be trapped.  If there were some way to intercept the IME API calls and decide which ones get through and which are discarded I should think an application could be written that could control this silly behavior.

>By the way are you working in Tokyo?
I am.  10 years now...  You too?

Cheers,

Mike

If you want to control it i think its possible to do by handling windows messages using API. Long back, I came across one article on controlling IME by trapping IMM messages in visual C++(Visual studio 2003). I will try to search for that link in my bookmarks.

>>I am.  10 years now...  You too?
Me too working in Tokyo for the last 8 years.
SOLUTION
Avatar of appari
appari
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial