プログラム側でIMEを制御するには

解決


RAD命  2012-12-14 20:28:57  No: 43480

お世話になります。
前回、前々回はお世話になりました。

色々ググっても判らなかったので、質問させてください。

環境は、Win8、TurboDelphi2006  or  C++BuilderXE2です。

IME(かな漢字変換)のコントロールをプログラム側でしたいと考えています。
変換モード、かな/ローマ字入力切り替えを行いたいのです。

以下の参考サイトまではたどりつけましたが、
それ以降がどうすればいいか全く判りません。
また、上記の希望のような制御は可能なのでしょうか?
よろしくお願いします。

http://msdn.microsoft.com/ja-jp/library/cc422019.aspx
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200911/09110025.txt


RAD命  2012-12-14 21:03:39  No: 43481

下記のサイトで、DelphiでのIME制御の方法を見つけました。

http://hp.vector.co.jp/authors/VA015730/delphi/TipsTips.html

ローマ字入力/かな入力の判定までは、何とか出来ました。

もう少し踏ん張ってみます。


RAD命  2012-12-14 21:33:21  No: 43482

IMEのかな入力/ローマ字入力切り替えまでは、
何とか出来ました。

こちらのPC(win8、ATOK)では、
かな入力が9、ローマ字入力が25でした。

procedure TForm1.Button1Click(Sender: TObject);
var Imc:HIMC;
  dwConversion : DWORD;
  dwSentence   : DWORD;
begin
  Imc := ImmGetContext(edit1.Handle);
  ImmGetConversionStatus(Imc,dwConversion,dwSentence);
  ImmSetConversionStatus(Imc,25,IME_CMODE_ROMAN);
end;

引き続き、かな漢字切り替えの自動切り替えに挑戦してみます。


RAD命  2012-12-14 21:44:49  No: 43483

解決しました!
上記のままででOKだったみたいです。

これで、win8に対応し切れていない古いIMEを引き続き使えそうです(笑)。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加