被微软的输入法打败了
在åšTabIMSwitch的新版本的时候,彻底被微软的输入法体系æžéƒé—·äº†ã€‚
我现在有两个å¯ç”¨çš„Windows XP系统,一个是我的笔记本,XP Pro ä¸æ–‡ç‰ˆï¼Œä¸€ä¸ªæ˜¯å…¬å¸çš„机器,XP Pro英文版,两å°æœºå™¨éƒ½å•ç‹¬è£…了微软拼音2003(公å¸å› 为Office是英文,默认ä¸å¸¦å¾®è½¯æ‹¼éŸ³ï¼›ç¬”è®°æœ¬å› ä¸ºä¸æ„¿ç”¨ç›—版,所以åªè£…了Viewer,也è¦å•ç‹¬è£…微软拼音)。本æ¥è¿™ä¸ªåº”该éžå¸¸å¸¸è§çš„情况,å¯æ˜¯åœ¨æµ‹è¯•TabIMSwitch的时候被彻底的æžéƒé—·äº†ã€‚
这个新版本的目的主è¦æ˜¯ä¸ºäº†è§£å†³smth上é¢æœ‰ç½‘å‹æ出说ä¸å¸Œæœ›è‡ªåŠ¨æ·»åŠ 英文Locale。之å‰æˆ‘åšäº†ä¸€ä¸ªTabIMSwitch 1.1.0.1的内部版本,这个在我的ä¸æ–‡ç³»ç»Ÿä¸Šé¢å·¥ä½œçš„很好。但是网å‹å›žå¤è¯´ä»ç„¶ä¸èƒ½å·¥ä½œï¼ŒåŽæ¥è°ƒæŸ¥ä¹‹åŽå‘现å¯èƒ½æ˜¯å› 为英文系统的缘故。然åŽæžœç„¶åœ¨å…¬å¸çš„英文XP上é¢é‡çŽ°äº†å‡ºæ¥ã€‚从目å‰çš„情况æ¥çœ‹ï¼Œå¯èƒ½çš„结果就是在英文XP系统上é¢å¸¦æœ‰çš„微软拼音2003éƒ½æ— æ³•æ”¯æŒï¼Œå¦‚æžœä¸æƒ³è‡ªåŠ¨æ·»åŠ 英文Localeçš„è¯ã€‚
é€ æˆè¿™ä¸ªé—®é¢˜çš„åŽŸå› å¾ˆæœ‰æ„æ€ï¼Œè¯´èµ·æ¥åº”该从TabIMSwitch的工作方å¼å¼€å§‹ã€‚
TabIMSwitch的工作机ç†å¾ˆç®€å•ï¼šTabIMSwitch由两个主è¦çš„部分,一个是å‰ç«¯çš„content\firefoxOverlay.xulåŠå…¶å¸¦æœ‰çš„一批js文件,å¦ä¸€ä¸ªå°±æ˜¯ç”¨C++写æˆçš„XPCOM组件,ä½äºŽsrc\tabimswitch目录下é¢ã€‚两者之间通过Firefoxçš„XPConnect机制è”系。XPCOM最åˆåšçš„很简å•ï¼Œåªæ˜¯å°è£…了一下Windowsçš„KeyboardLayout的系列函数。当Firefoxå¯åŠ¨ä¹‹åŽï¼Œä¼šè‡ªåŠ¨åŠ è½½XPCOM组件和å‰ç«¯çš„xul文件,并且在xul当ä¸è¿›è¡Œå¿…è¦çš„消æ¯çš„hook。当TabIMSwitchå‘现当å‰çš„æ ‡ç¾é¡µå‘生了å˜åŒ–的时候,就会获å–到Firefox当å‰çš„输入法状æ€ï¼Œå¹¶å°†å…¶å˜å…¥åˆ°ä¸€ä¸ªåˆ—表当ä¸ï¼Œç„¶åŽä»Žè¿™ä¸ªåˆ—表当ä¸èŽ·å–å³å°†åˆ‡æ¢åˆ°çš„æ ‡ç¾é¡µçš„输入法(以å‰ä¿å˜ä¸‹æ¥çš„),并且将其设置æˆFirefox的当å‰è¾“入法。
问题在于,微软关于输入法的说明éžå¸¸çš„零散,ä¸è¿‡åŸºæœ¬ä¸Šå›´ç»•åœ¨Keyboard Layoutå’ŒIME两节当ä¸ã€‚æ ¹æ®æ–‡æ¡£çš„æ述,微软拼音输入法和“ä¸æ–‡-美å¼é”®ç›˜â€ä¹‹é—´çš„区别就在于它们是ä¸åŒçš„Keyboard Layoutã€‚å› æ¤ï¼Œåªè¦å˜ä¸‹æ¥è¿™ä¸ªKeyboard Layoutå°±OK了。TabIMSwitch 1.0.*系列也是这么实现的。
但是就是这ç§ç®€å•çš„实现在英文版XP+微软拼音输入法上é¢ä¸å·¥ä½œï¼Œç»è¿‡è·Ÿè¸ªä¹‹åŽå‘çŽ°ï¼ŒåŽŸå› ç«Ÿç„¶åœ¨äºŽï¼Œåœ¨è¿™ç§çŽ¯å¢ƒä¸‹é¢å¾®è½¯æ‹¼éŸ³å’Œâ€œä¸æ–‡-美å¼é”®ç›˜â€ä¹‹é—´æ˜¯å®Œå…¨ç›¸åŒçš„ï¼šæ— è®ºé€šè¿‡GetKeyboardLayout函数还是GetKeyboardLayoutName函数,得到的都是相åŒçš„Keyboard Layout。当时在1.0.*系列当ä¸ä¸ºäº†è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œå°±è‡ªåŠ¨Load了一个04090409çš„Keyboard Layout,也就是“英文-美å¼é”®ç›˜â€ï¼Œæ¥é¿å…和微软拼音的冲çªã€‚所以就有了å‰é¢ç½‘å‹æ出的那个问题。
åŽæ¥è€ƒè™‘是ä¸æ˜¯å¯ä»¥é€šè¿‡IME接å£æ¥å¯¹è¾“å…¥æ³•è¿›è¡Œæ›´åŠ ç»†è‡´çš„æŽ§åˆ¶ï¼Œç»“æžœéžå¸¸æ— 奈:似乎对于IME接å£æ¥è¯´ï¼Œå¾®è½¯æ‹¼éŸ³å’Œâ€œä¸æ–‡-美å¼é”®ç›˜â€ä¹Ÿæ˜¯ç›¸åŒçš„。我找到了微软MSDN当ä¸æ供的一个sample,æ示了IME接å£çš„使用方å¼ã€‚但是就使这个示例程åºï¼Œåœ¨æˆ‘的英文XP下é¢ä¹Ÿæ‡èœäº†ã€‚
ç›®å‰åªèƒ½è¯´ï¼šå®Œå…¨è¢«å¾®è½¯è‡ªå·±çš„两个东西æžç–¯æŽ‰äº†ã€‚
wow gold
wow power leveling
google排å
google排å
google左侧排å
google左侧排å
ä¸å›½ç¦åˆ©å½©ç¥¨
åŒè‰²çƒ
ä¸å›½ä½“育彩票
ä¸å½©ç½‘
租房
租房
北京租房
北京租房
ä¿æ´
ä¿æ´
ä¿æ´å…¬å¸
ä¿æ´å…¬å¸
cheap wow powerleveling
cheap wow powerleveling
cheap wow powerleveling
cheap wow powerleveling
cheap wow power leveling
cheap wow power leveling
cheap wow power leveling
cheap wow powerlevel
cheap wow powerlevel
cheap wow powerlevel
cheap wow powerlevel
cheap wow power level
cheap wow power level
cheap wow power level
cheap wow power level
cheap wow power leveling
powerlevel
powerlevel
powerlevel
powerlevel
power level
power level
power level
power level
wow powerlevel
wow powerlevel
wow powerlevel
wow powerlevel
wow power level
wow power level
wow power level
wow power level
cheap powerlevel
cheap powerlevel
cheap powerlevel
cheap powerlevel
cheap power level
cheap power level
cheap power level
cheap power level
cheap powerleveling
cheap powerleveling
cheap powerleveling
cheap powerleveling
cheap power leveling
cheap power leveling
cheap power leveling
cheap power leveling
powerleveling wow
powerleveling wow
powerleveling wow
powerleveling wow
power leveling wow
power leveling wow
power leveling wow
power leveling wow -408454829914603