Prev: cFileSearch by Ulrich Korndoerfer
Next: VB6 and SQLite: Instructions on how to insert a blob into a new record
From: Jan Opitz on 2 Dec 2008 10:23 I used ImmGetDescription to find out which Japanese IME is installed with w2k and XP. With Vista this does not work. Any advice or link? Also: Is there any general VB (6 or net) related info on activation of the Japanese IME with MS Vista? TIA, Jan
From: Bill McCarthy on 2 Dec 2008 10:53 Hi Jan, "Jan Opitz" <next1NO(a)SPAMgmx.de> wrote in message news:OslgmJJVJHA.3964(a)TK2MSFTNGP03.phx.gbl... >I used ImmGetDescription to find out which Japanese IME is installed with >w2k and XP. With Vista this does not work. Any advice or link? > Also: Is there any general VB (6 or net) related info on activation of the > Japanese IME with MS Vista? > > TIA, Jan > When you say it does not work, what exactly doesn't work ? What is ImmGetDescription returning ? Are you sure you are using the correct locale identifier ? As to general info on IME, what are you after ? In .NET windows.Forms and WPF all have IME support. For example, you can set the IME mode of a textbox to Hiragana, Katakana, KatakanaHalf, Alpha, AlphaFull etc. There's also events like the IMEChange event on a richtextbox that lets you know when the user changes IME mode.
From: Jan Opitz on 2 Dec 2008 11:16 Thank you for your questions. I wrote an application in VB6 some years ago and used ImmGetDescription to read out the IME name from the buffer. For i = 1 To NoOfKBDLayout Buff = String(255, 0) If ImmIsIME(hKB(i - 1)) = 1 Then 'IME-depending Keyb? BuffLen = 255 RetCount = ImmGetDescription(hKB(i - 1), Buff, BuffLen) RetStr = UCase(Left$(Buff, RetCount)) 'check for IME in Win2K and winXP If InStr(RetStr, "JAP") Or InStr(RetStr, "MICROSOFT IME") Then Test2000IME = True Exit For End If End If Next For Vista users I would like to make some changes, since with Vista, the buffer remains empty. Also, I cannot display the IME input pad anymore using this code which used to work on w2k and XP lngResult = LoadKeyboardLayout("E0010411", KLF_ACTIVATE) 'brings up Jp IME WM_MSIME_SHOWIMEPAD = RegisterWindowMessage("MSIMEShowImePad") lngDefaultIMEHandle = ImmGetDefaultIMEWnd(RichEdit1.hwnd) lngResult = SendMessage(lngDefaultIMEHandle, _ WM_MSIME_SHOWIMEPAD, _ SHOWIMEPAD_CATEGORY, _ ByVal IPACID_HANDWRITING) So I assumed there is a change Vista, but could not find workarounds so far. Any help would be appreciated very much. Jan "Bill McCarthy" <Bill(a)localhost.com> schrieb im Newsbeitrag news:u1C3rYJVJHA.4884(a)TK2MSFTNGP02.phx.gbl... > Hi Jan, > > "Jan Opitz" <next1NO(a)SPAMgmx.de> wrote in message > news:OslgmJJVJHA.3964(a)TK2MSFTNGP03.phx.gbl... >>I used ImmGetDescription to find out which Japanese IME is installed with >>w2k and XP. With Vista this does not work. Any advice or link? >> Also: Is there any general VB (6 or net) related info on activation of >> the Japanese IME with MS Vista? >> >> TIA, Jan >> > > When you say it does not work, what exactly doesn't work ? What is > ImmGetDescription returning ? Are you sure you are using the correct > locale identifier ? > > As to general info on IME, what are you after ? In .NET windows.Forms and > WPF all have IME support. For example, you can set the IME mode of a > textbox to Hiragana, Katakana, KatakanaHalf, Alpha, AlphaFull etc. > There's also events like the IMEChange event on a richtextbox that lets > you know when the user changes IME mode. > >
From: Bill McCarthy on 2 Dec 2008 12:21 Hi Jan, "Jan Opitz" <next1NO(a)SPAMgmx.de> wrote in message news:e2qYvlJVJHA.5424(a)TK2MSFTNGP04.phx.gbl... > Thank you for your questions. > > I wrote an application in VB6 some years ago and used ImmGetDescription to > read out the IME name from the buffer. > > For i = 1 To NoOfKBDLayout > Buff = String(255, 0) > If ImmIsIME(hKB(i - 1)) = 1 Then 'IME-depending Keyb? > BuffLen = 255 > RetCount = ImmGetDescription(hKB(i - 1), Buff, BuffLen) > RetStr = UCase(Left$(Buff, RetCount)) > 'check for IME in Win2K and winXP > If InStr(RetStr, "JAP") Or InStr(RetStr, "MICROSOFT IME") Then > Test2000IME = True > Exit For > End If > End If > Next > > For Vista users I would like to make some changes, since with Vista, the > buffer remains empty. > Strange I get an empty buffer for that on XP and Vista. Admittedly my XP hasn't got Japanese, but I have got IME languages on it. A work around might be just to check the locale info part of hte keyboard, eg: Const locale_JP = & H411 If (hKB(i) And locale_JP) = locale_JP Then ' is Japanese locale > Also, I cannot display the IME input pad anymore using this code which > used to work on w2k and XP > > lngResult = LoadKeyboardLayout("E0010411", KLF_ACTIVATE) > 'brings up Jp IME > WM_MSIME_SHOWIMEPAD = RegisterWindowMessage("MSIMEShowImePad") > lngDefaultIMEHandle = ImmGetDefaultIMEWnd(RichEdit1.hwnd) > lngResult = SendMessage(lngDefaultIMEHandle, _ > WM_MSIME_SHOWIMEPAD, _ > SHOWIMEPAD_CATEGORY, _ > ByVal IPACID_HANDWRITING) > > So I assumed there is a change Vista, but could not find workarounds so > far. > Any help would be appreciated very much. > Not sure on this part. What's the "E0010411" ? Doesn't that value depend on the hKB(i) value ? > Jan > > > > "Bill McCarthy" <Bill(a)localhost.com> schrieb im Newsbeitrag > news:u1C3rYJVJHA.4884(a)TK2MSFTNGP02.phx.gbl... >> Hi Jan, >> >> "Jan Opitz" <next1NO(a)SPAMgmx.de> wrote in message >> news:OslgmJJVJHA.3964(a)TK2MSFTNGP03.phx.gbl... >>>I used ImmGetDescription to find out which Japanese IME is installed with >>>w2k and XP. With Vista this does not work. Any advice or link? >>> Also: Is there any general VB (6 or net) related info on activation of >>> the Japanese IME with MS Vista? >>> >>> TIA, Jan >>> >> >> When you say it does not work, what exactly doesn't work ? What is >> ImmGetDescription returning ? Are you sure you are using the correct >> locale identifier ? >> >> As to general info on IME, what are you after ? In .NET windows.Forms and >> WPF all have IME support. For example, you can set the IME mode of a >> textbox to Hiragana, Katakana, KatakanaHalf, Alpha, AlphaFull etc. >> There's also events like the IMEChange event on a richtextbox that lets >> you know when the user changes IME mode. >> >> > >
From: Jan Opitz on 2 Dec 2008 15:34 Hi Bill, > Const locale_JP = & H411 > If (hKB(i) And locale_JP) = locale_JP Then ' is Japanese locale thank you very much for this. However, using the hKB(i) value for the JP keyboard does not activate the JP IME (with Vista - it does with XP). Any more ideas? >> lngResult = LoadKeyboardLayout("E0010411", KLF_ACTIVATE) > > Not sure on this part. What's the "E0010411" ? Doesn't that value depend > on the hKB(i) value ? > Jan Opitz
|
Next
|
Last
Pages: 1 2 Prev: cFileSearch by Ulrich Korndoerfer Next: VB6 and SQLite: Instructions on how to insert a blob into a new record |