したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

ユーザーサポート

91らもぬーど:2009/11/23(月) 23:39:32 ID:8b/gbpcE
はじめまして。大変心地よく nodoka を使っております。
1つ困ったことがありまして、お伺いしたいことがあります。

現在、nodoka を使用して IME 制御を行っております。
key *IC-C-Yen = &SetImeStatus(on)
key *IC-C-CircumflexAccent = &SetImeStatus(off)
このように IME のオンオフを切り替えるように設定しています。

これ自体は正常に動作しているようなのですが、IME を制御するアプリケーションで
この切り替えが動作しなくなることがあります。
現在その現象を確認しているのは bluewind というアプリケーションと、
自作アプリケーションです。

その現象とは、あるタイミングでアプリケーションが自動的に IME をオフにすると
その後 nodoka SetImeStatus(on) が有効にならないというものです。
半角/全角キーだとオンオフが可能で、その後は SetImeStatus(on) が有効になります。

自作のほうは C# + .NET Framework で次のようなコードで実現しています。

IntPtr ime_handle = (IntPtr)ImmGetContext(this.Handle);
uint conv = 0, sent = 0;
ImmGetConversionStatus(ime_handle, ref conv, ref sent);
int result = ImmSetConversionStatus(ime_handle, IME_CMODE_ALPHANUMERIC, sent);

IME がオンのときにこのコードを実行するとオフになります。
この後 SetImeStatus(on) を行ってもオンになっていないように見えます。
ただ、そのときもう一度上のコードを実行し
ImmGetConversionStatus(ime_handle, ref conv, ref sent);
直後の conv の値を調べると
IME_CMODE_NATIVE | IME_CMODE_FULLSHAPE | IME_CMODE_ROMAN (数値では25)
となっており、IME がオンの状態と同じです。

半角/全角キーで正常に動作し、nodoka の SetImeStatus(on) で意図通り動作しないので、
nodoka ではどのように制御しているのか教えていただけないでしょうか?

以上です。




掲示板管理者へ連絡 無料レンタル掲示板