wince 6中硬键盘 输入法解决
生活随笔
收集整理的這篇文章主要介紹了
wince 6中硬键盘 输入法解决
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在一個項(xiàng)目中,我遇到了9宮格的鍵盤問題;wince下的keyboard的構(gòu)架是native 方式,往 系統(tǒng)發(fā)送的是數(shù)字按鍵,要在wince上實(shí)現(xiàn)漢字或字母,就需要一個輸入法來解析!
好在T9就是這樣設(shè)計(jì)的,廣泛用在嵌入式領(lǐng)域,C51下也有這樣的移植。google一下,有很多連接可供下載,編譯和集成都非常很簡單,啟動系統(tǒng)后就有輸入法的面板!
需要指出的是,
1,附帶的注冊表wceshellfe.reg非常的冗余,并且對系統(tǒng)有影響!可以參照我修改后的內(nèi)容:
; Tell edit controls to use level 3 processing for Chinese Ime's.
; @CESYSGEN IF WCESHELLFE_MODULES_CHSIME98
[HKEY_LOCAL_MACHINE\SYSTEM\GWE\EDIT]
"IMELEVEL"=dword:3
; @CESYSGEN ENDIF
; "DefaultIm"="LOC_MSIM_CLSID"
; @=LOC_SPIMNAME
; @=LOC_PHONIMNAME
; @=LOC_CHAJEIIMNAME
; CHS Input Methods (IM's)
; @CESYSGEN IF WCESHELLFE_MODULES_SPIM
[HKEY_CURRENT_USER\ControlPanel\Sip]
"DefaultIm"="{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}]
; @=LOC_SPIMNAME
;@=LOCALIZED_SPIMNAME
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\InprocServer32]
@="\\windows\\spim.dll"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\IsSIPInputMethod]
@="1"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\DefaultIcon]
@="\\windows\\spim.dll,0"
; @CESYSGEN ENDIF
; CHT IMs are in COMMON.REG
; @CESYSGEN IF WCESHELLFE_MODULES_MSIMESP
; @CESYSGEN ENDIF
; @CESYSGEN IF WCESHELLFE_MODULES_CHSIME98
;
; Simplified Chinese Intelligent IME (MSPY2)
;
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
@="e0010804"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Layouts\e0010804]
"Layout Text"="Intelligent IME 98"
"Ime File"="T9IME.dll"
"Keyboard Layout"="00000409"
;
;for IME hot keys (optional and may be diff due to target)
;
# Hot Key Alt + F1 For direct switch
# IME_HOTKEY_DSWITCH_FIRST
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]
"VK"=dword:70
"KM"=dword:C001
"Ime"=dword:e0010804
# Hot Key Ctrl + Space For NO IME switch
# IME_CHOTKEY_IME_NONIME_TOGGLE
# It may be no use because there is only one IME
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010]
"VK"=dword:20
"KM"=dword:C002
"Ime"=dword:e0010804
# Hot Key Shift + Space For Shape switch
# IME_CHOTKEY_SHAPE_TOGGLE
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000011]
"VK"=dword:20
"KM"=dword:C004
"Ime"=dword:e0010804
# Hot Key Ctrl + . for symbol switch
# IME_CHOTKEY_SYMBOL_TOGGLE
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000012]
"VK"=dword:BE
"KM"=dword:C002
"Ime"=dword:e0010804
[HKEY_CURRENT_USER\Ime\Hot Keys\001]
"Key Modifiers"=dword:11
"Virtual Key"=dword:20
[HKEY_CURRENT_USER\Ime\Hot Keys\002]
"Key Modifiers"=dword:10
"Virtual Key"=dword:20
[HKEY_CURRENT_USER\Ime\Hot Keys\003]
"Key Modifiers"=dword:0
"Virtual Key"=dword:0
; @CESYSGEN ENDIF
; @CESYSGEN IF WCESHELLFE_MODULES_MSIMEPH
; @CESYSGEN ENDIF
2,T9輸入法是IME構(gòu)架,與wince下的SIP構(gòu)架有很大的不同。與網(wǎng)上有同學(xué)遇到樣的問題,無法切換到其他的輸入法。因?yàn)槠鋬H僅是一個輸入法,不能在后臺運(yùn)行一個IMM的程序來控制。
3,經(jīng)過查找wince的catalog,發(fā)現(xiàn)wince的feature IMM 沒有選擇,再選上multilingual user interface,clean sysgen后,已經(jīng)可以選擇其他的輸入法了。
好在T9就是這樣設(shè)計(jì)的,廣泛用在嵌入式領(lǐng)域,C51下也有這樣的移植。google一下,有很多連接可供下載,編譯和集成都非常很簡單,啟動系統(tǒng)后就有輸入法的面板!
需要指出的是,
1,附帶的注冊表wceshellfe.reg非常的冗余,并且對系統(tǒng)有影響!可以參照我修改后的內(nèi)容:
; Tell edit controls to use level 3 processing for Chinese Ime's.
; @CESYSGEN IF WCESHELLFE_MODULES_CHSIME98
[HKEY_LOCAL_MACHINE\SYSTEM\GWE\EDIT]
"IMELEVEL"=dword:3
; @CESYSGEN ENDIF
; "DefaultIm"="LOC_MSIM_CLSID"
; @=LOC_SPIMNAME
; @=LOC_PHONIMNAME
; @=LOC_CHAJEIIMNAME
; CHS Input Methods (IM's)
; @CESYSGEN IF WCESHELLFE_MODULES_SPIM
[HKEY_CURRENT_USER\ControlPanel\Sip]
"DefaultIm"="{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}]
; @=LOC_SPIMNAME
;@=LOCALIZED_SPIMNAME
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\InprocServer32]
@="\\windows\\spim.dll"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\IsSIPInputMethod]
@="1"
[HKEY_CLASSES_ROOT\CLSID\{DF2BF912-1A9A-11D2-8F89-00C04FAC52F9}\DefaultIcon]
@="\\windows\\spim.dll,0"
; @CESYSGEN ENDIF
; CHT IMs are in COMMON.REG
; @CESYSGEN IF WCESHELLFE_MODULES_MSIMESP
; @CESYSGEN ENDIF
; @CESYSGEN IF WCESHELLFE_MODULES_CHSIME98
;
; Simplified Chinese Intelligent IME (MSPY2)
;
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
@="e0010804"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Layouts\e0010804]
"Layout Text"="Intelligent IME 98"
"Ime File"="T9IME.dll"
"Keyboard Layout"="00000409"
;
;for IME hot keys (optional and may be diff due to target)
;
# Hot Key Alt + F1 For direct switch
# IME_HOTKEY_DSWITCH_FIRST
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]
"VK"=dword:70
"KM"=dword:C001
"Ime"=dword:e0010804
# Hot Key Ctrl + Space For NO IME switch
# IME_CHOTKEY_IME_NONIME_TOGGLE
# It may be no use because there is only one IME
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000010]
"VK"=dword:20
"KM"=dword:C002
"Ime"=dword:e0010804
# Hot Key Shift + Space For Shape switch
# IME_CHOTKEY_SHAPE_TOGGLE
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000011]
"VK"=dword:20
"KM"=dword:C004
"Ime"=dword:e0010804
# Hot Key Ctrl + . for symbol switch
# IME_CHOTKEY_SYMBOL_TOGGLE
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000012]
"VK"=dword:BE
"KM"=dword:C002
"Ime"=dword:e0010804
[HKEY_CURRENT_USER\Ime\Hot Keys\001]
"Key Modifiers"=dword:11
"Virtual Key"=dword:20
[HKEY_CURRENT_USER\Ime\Hot Keys\002]
"Key Modifiers"=dword:10
"Virtual Key"=dword:20
[HKEY_CURRENT_USER\Ime\Hot Keys\003]
"Key Modifiers"=dword:0
"Virtual Key"=dword:0
; @CESYSGEN ENDIF
; @CESYSGEN IF WCESHELLFE_MODULES_MSIMEPH
; @CESYSGEN ENDIF
2,T9輸入法是IME構(gòu)架,與wince下的SIP構(gòu)架有很大的不同。與網(wǎng)上有同學(xué)遇到樣的問題,無法切換到其他的輸入法。因?yàn)槠鋬H僅是一個輸入法,不能在后臺運(yùn)行一個IMM的程序來控制。
3,經(jīng)過查找wince的catalog,發(fā)現(xiàn)wince的feature IMM 沒有選擇,再選上multilingual user interface,clean sysgen后,已經(jīng)可以選擇其他的輸入法了。
總結(jié)
以上是生活随笔為你收集整理的wince 6中硬键盘 输入法解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wince 隐藏TASKBAR的方法
- 下一篇: wince下的蓝牙串口通信