被微软的输入法打败了
在åš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