[VB.NET]请问在WINCE中如何实现输入法的自动切换呢?

前端之家收集整理的这篇文章主要介绍了[VB.NET]请问在WINCE中如何实现输入法的自动切换呢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

请问在WINCE中如何实现输入法的自动切换呢?
现在我的WINCE环境下有日文的输入法,但是日文输入法中还有几种的输入法,比如直接英文输入,全角平假输入,半角平假输入等等.
我现在下当打开系统的软键盘时,输入法自动设置为半角平假输入状态.该如何设置呢?
我想通过调用 "keybd_event "这个API,向系统发送一些组合键来实现,但是不知道用哪几个键来组合?
请问有人碰到过这类问题没...
__________________________________________________________________________
请问没有知道的吗?
急等中...
__________________________________________________________________________
请问有知道如何解决这样的问题的高人吗?
请赐教.
__________________________________________________________________________
最后一问,绝望中了...
请赐教...
__________________________________________________________________________
别揭帖。我也想知道答案。虽然肯定有答案。但是我时间去找。不过给个思路。你调用如何做的?是不是SPI函数?可以考虑看看。这个应该是系统api可以实现的。
__________________________________________________________________________
用api在一般的.NET Framework中可以实现.但是在WINCE的环境下,却不能调用imm32.dll,郁闷呀!
还有你说的用SPI函数,能具体说一下思路吗,我还继续寻找方法.
__________________________________________________________________________
SipEnumIM
SipGetCurrentIM
SipSetCurrentIM
SipSetDefaultRect
SipSetInfo
SipShowIM
SipStatus

说错了。不是spi,是sip。以上的可能可以,仔细的没看。你可以看看msdn,如果找到方法了。记得来这里公布哦。

如果c++,需要添加 哪个dll么,我还没看到,可能是coredll.dll __________________________________________________________________________ 我用了API实现: Dim KEYEVENTF_SILENT As Byte = &H4 Dim KEYEVENTF_KEYUP As Byte = &H2 Dim VK_LMENU As Byte = 164 Dim VK_KANJI As Byte = 25 keybd_event(VK_LMENU,KEYEVENTF_SILENT,0) keybd_event(VK_KANJI,KEYEVENTF_KEYUP,0) keybd_event(VK_LMENU,0) 这样可以将日语的输入法由直接入力状态切换到假名的输入状态,但是我还没找到如何将输入状态从假名的输入状态再切换为直接入力状态. 有兴趣的朋友可以一起来讨论一下,共同寻找好的解决方法. __________________________________________________________________________ 提供一个思路。找输入法的面板,模拟触摸屏的点击事件,再SendMessage。 // 找主输入法面版 HWND hWndSip = ::FindWindow(L "SipWndClass ",NULL); if(hWndSip == NULL) { return FALSE; // 没找到则退出 } // 找ZTES.IM面板 HWND hWndIM = ::GetWindow(hWndSip,GW_CHILD); if(hWndIM == NULL) { return FALSE; // 没找到则退出 } // 找ZTES.PAD面板 HWND hWndPad = ::GetWindow( hWndIM,GW_CHILD); if( hWndPad == NULL ) { return FALSE; // 没找到则退出 } // 验证是否真的是ZTES.PAD面板 TCHAR szBuf[40]; GetClassName(hWndPad,szBuf,40); if( _tcscmp( szBuf,L "ZTES.PAD " ) != 0 ) { return FALSE; // 看来不是,退出 } // 程序走到这里,说明确实找到了输入面板窗体句柄 POINT pt = cstPt[tRange]; ::SendMessage(hWndPad,WM_LBUTTONDOWN,NULL,MAKELPARAM(pt.x,pt.y)); ::SendMessage(hWndPad,WM_LBUTTONUP,pt.y)); __________________________________________________________________________ 我也想知道 怎么用这些API 最好能有程序例子 __________________________________________________________________________ to wxm4585 能否解说一下 看不懂 POINT pt = cstPt[tRange]; ::SendMessage(hWndPad,pt.y)); __________________________________________________________________________ POINT pt = cstPt[tRange]; __________________________________________________________________________ 直接用keybd_event实现不是简单一些吗? __________________________________________________________________________

猜你在找的VB相关文章