IMEのWindowsバージョンを取得 <TOP>
GetKeyboardLayout キーボードレイアウトのハンドルを取得
ImmGetProperty 指定された入力ロケールに関連付けられているIMEのプロパティや機能に関する情報を取得
'================================================================ '= IMEのWindowsバージョンを取得 '= (ImmGetProperty.bas) '================================================================ #include "Windows.bi" ' キーボードレイアウトのハンドルを取得 Declare Function Api_GetKeyboardLayout& Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout&) ' 指定された入力ロケールに関連付けられている IME のプロパティや機能に関する情報を取得 Declare Function Api_ImmGetProperty& Lib "imm32" Alias "ImmGetProperty" (ByVal hkl&, ByVal dw&) #define IGP_CONVERSION &H8 '変換関連の機能 #define IGP_GETIMEVERSION -&H4 '指定したIMEに対応するシステムバージョン番号 #define IGP_PROPERTY &H4 'プロパティ情報 #define IGP_SELECT &H18 '選択継承機能 #define IGP_SENTENCE &HC '変換モードの機能 #define IGP_SETCOMPSTR &H14 '変換文字列関連の機能 #define IGP_UI &H10 'ユーザーインターフェイス関連の機能 #define IMEVER_0310 &H3000A 'Windows3.1用に作成されたIME #define IMEVER_0400 &H40000 'Windows95用に作成されたIME Var Shared Text1 As Object Var Shared Text2 As Object Var Shared Button1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Text2.Attach GetDlgItem("Text2") : Text2.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hKeyLayout As Long Var IMEWinVersion As Long 'カレントスレッドのキーボードレイアウトのハンドル取得 hKeyLayout = Api_GetKeyboardLayout(0) 'IMEのWindowsバージョン取得 IMEWinVersion = Api_ImmGetProperty(hKeyLayout, IGP_GETIMEVERSION) 'IMEのWindowsバージョン表示 Select Case IMEWinVersion Case IMEVER_0310 Text2.SetWindowText "Windows 3.1用に作成されました。" Case IMEVER_0400 Text2.SetWindowText "Windows 95用に作成されました。" Case Else Text2.SetWindowText "取得できません。" End Select End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End