掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
他のアプリのIMEの制御 (ID:39600)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは.Mr.XRAYです. >当方の環境は、WindowsXP + Delphi7 です。 ということですので,同じ環境で以下のコードをテストしてみました. >IMEのON/OFFを得られません。 ということですが,その前に,imc の値が取得できないハズです. 他のアプリのIMEの状態取得や設定は,提示された関数ではできません. (他のアプリの操作関係は難しいです) そこで,IMEはデフォルトのものと仮定し,考えられるのはメッセージ処理です. これ以外のメッセージについては,MSDNの記事を参考にしてください. IME関係は,WM_IME_XXXXX となっています. では,健闘をお祈りいたします. //============================================================================= // ハンドルがhMemoEditのIMEのON,OFFを調査 // メモ帳の場合,メモ帳のハンドルではなく編集コントロールのハンドルなので注意 // またシステムのデフォルトのIMEを使用していると仮定 // usesにIMMが必要 // // WM_IME_CONTROL等のメッセージについてはMSDNの記事を参照 // 例えばWM_IME_CONTROLは // http://msdn.microsoft.com/en-us/library/ms906448.aspx // 定数値はMicrosoft SDKのヘッダファイル(拡張子は.h)を参照 // IME関係はimm.h // Microsoft SDKのダウンロードリンクは以下の記事を参照 // http://mrxray.on.coocan.jp/Delphi/CompoInstall/TypeLibraryDD.htm#02 //============================================================================= procedure TForm1.Button3Click(Sender: TObject); var IMC: HIMC; begin IMC := ImmGetDefaultIMEWnd(hMemoEdit); if LongBool(SendMessage(IMC, WM_IME_CONTROL, IMC_GETOPENSTATUS, 0)) then begin Memo1.Lines.Add('IME ON') end else begin Memo1.Lines.Add('IME OFF') end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.