內(nèi)容回顧:
[1]十個(gè)步驟找回 Win8 中的微軟拼音新體驗(yàn)?zāi)J?/a>
[2]發(fā)布個(gè)工具,一鍵恢復(fù)Win8/8.1中的微軟拼音長(zhǎng)句模式(新體驗(yàn)?zāi)J剑?/a>
在 [1] 中,我們找回了 Win8 里的微軟拼音新體驗(yàn)?zāi)J剑辉?[2] 中,依照 ePig 提供的方法,我們?cè)?Win8.1 中也搬回了微軟拼音新體驗(yàn)?zāi)J剑粝铝艘稽c(diǎn)遺憾,不支持 Metro 應(yīng)用。

(其實(shí)還有一點(diǎn),沒有顯示圖標(biāo)。)
原本我覺得無所謂,因?yàn)槲曳凑惶?Metro 應(yīng)用,Metro 下就用自帶的微軟拼音簡(jiǎn)捷模式好了。可是,可是,輸入法管理器中,比如保留一個(gè)兼容 Metro 的輸入法,導(dǎo)致桌面下也比如保留簡(jiǎn)捷模式了,這樣切換輸入法經(jīng)常切錯(cuò),離所謂“一個(gè)輸入法”的偉大目標(biāo)相差甚遠(yuǎn)。于是乎,不能忍。然后昨天起來看了下這個(gè)問題。
原先微軟拼音輸入法的一個(gè)不知什么的GUID是 {81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e},該 GUID 代表的輸入法下有兩個(gè)輸入模式,新體驗(yàn)和簡(jiǎn)捷。(這個(gè)構(gòu)架和相關(guān)內(nèi)容我不是很懂,具體請(qǐng)去查閱 TSF (Text Service Framework) 框架相關(guān)文檔。) Win 8 下只是刪除了新體驗(yàn)?zāi)J降哪莻€(gè)注冊(cè)表項(xiàng)并對(duì)注冊(cè)表項(xiàng)加權(quán)限保護(hù)達(dá)到禁用目的。Win8.1 下的變化是,老的文件被刪除了,且 {81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e} 被用作新的微軟拼音的 GUID 了,里面也不再分兩個(gè)模式了(其實(shí)只有原先的簡(jiǎn)捷模式)。按照 ePig 提供的方法,從 Win8 中復(fù)制相關(guān)文件,并把文件中的 GUID 改了,重新注冊(cè)進(jìn)去。這邊我在一鍵恢復(fù)工具所帶的文件中是把 GUID 末尾 e 改為了 f,完整的就是 {81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35F}。按道理應(yīng)該完全兼容才是,起碼 Win8 下是支持 Metro 的。微軟拼音很早就是 TSF 框架了(而不是 Imm),據(jù)我之前的了解,要支持 Metro,輸入法使用 TSF 框架就好了。
想不通的情況下,就來比較下 Win8.1 下自帶的微軟拼音(簡(jiǎn)捷模式)和我們新加的微軟拼音新體驗(yàn)?zāi)J降淖?cè)表項(xiàng)差異:

發(fā)現(xiàn)自帶的多了幾項(xiàng)(紅框部分)。于是仿照著把這些補(bǔ)上去,結(jié)果確實(shí)不顯示“僅適用于桌面版”了,可是好像也沒法輸入了……于是每次只加一項(xiàng),依次試過去(窮舉法,鄙視)。最后發(fā)現(xiàn)前兩個(gè) ,也就是 {13A016DF-560B-46CD-947A-4C3AF1E0E35D}、{25504FB4-7BAB-4BC1-9C69-CF81890F0EF5} 可以要,最后 {74769ee9-4a66-4f9d-90d6-bf8b7c3eb461} 不能要。
再看下 Win8 的,果然也是有這兩個(gè) Category 的:

然后這事情就算成了:

一鍵工具已更新,下載頁面:http://www.streamlet.org/Software/MSPYForever/
那么這兩個(gè) GUID 到底是什么呢?Google 一下……
關(guān)于前者,http://msdn.microsoft.com/zh-cn/library/windows/apps/hh967425.aspx#set_compatibility_flag 中有說明如下:
聲明兼容性
IME 通過使用 ITfCategoryMgr::RegisterCategory 為其 IME 注冊(cè)類別 GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT 來聲明其兼容 Windows 應(yīng)用商店應(yīng)用。
其中 GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT 就是 {13A016DF-560B-46CD-947A-4C3AF1E0E35D}。
{25504FB4-7BAB-4BC1-9C69-CF81890F0EF5} 也是個(gè)預(yù)定義的值,叫做 GUID_TFCAT_TIPCAP_SYSTRAYSUPPORT,按字面理解,系統(tǒng)托盤支持,可是查不到官方說明啊,http://msdn.microsoft.com/en-us/library/ms629012.aspx 這一頁啥也不說,是不是bug……
不管怎么說,問題是解決了。大快人心。
再順便黑下大微軟。

看這張圖,我在寫代碼或?qū)慦ord或者寫別的文字,開著中文語言下的中文輸入法(寫代碼怎么會(huì)開中文?不要在意這些細(xì)節(jié)……),然后來了條 QQ 消息。我去任務(wù)欄點(diǎn)企鵝圖標(biāo)。結(jié)果剛點(diǎn)下,因?yàn)槿蝿?wù)欄、桌面是英文語言下的美式鍵盤,輸入法指示器變?yōu)?ENG,縮短了,企鵝圖標(biāo)跑右邊去了,點(diǎn)空了!!!
正因?yàn)槿绱耍乙郧翱偸前延⑽恼Z言刪掉,只有中文語言,下面一個(gè)輸入法,靠 Shift 在輸入法內(nèi)切換中英文。可是 Shift 很容易誤操作有木有。最佳的方式還是中文語言下的美式鍵盤……這個(gè)問題很早之前研究過幾個(gè)小時(shí),但沒啥結(jié)果,后來想,如果真的沒辦法了,干脆寫一個(gè)空的輸入法原樣輸入輸出,叫做“美式鍵盤”得了。為啥中文下就不給鍵盤布局呢?為什么呢為什么呢為什么呢?
昨天又去網(wǎng)上搜了下,結(jié)果高人已經(jīng)給出了方法了,不知道哪篇是原創(chuàng),就不引用了,有興趣的自己搜。這里還有個(gè)半官方的出處:http://answers.microsoft.com/zh-hans/windows/forum/windows_8-ime/windows-8%E7%9A%84%E8%BE%93%E5%85%A5%E6%B3%95/91917117-c5fd-4c61-ac2e-da0dd29d12fc。但其實(shí)美式鍵盤沒有圖標(biāo),會(huì)顯示“簡(jiǎn)體”,所以也會(huì)有長(zhǎng)短變化。最佳的方法還是恢復(fù)成語言欄的樣子:

這下同在中文語言下了,Ctrl+Shift 切輸入法,怎一個(gè)舒服了得~!至此,Win8、Win8.1 的輸入法問題對(duì)我個(gè)人而言已經(jīng)全部解決了,可以大規(guī)模重裝系統(tǒng)了。
忍不住再黑下大微軟:http://answers.microsoft.com/zh-hans/windows/forum/windows_8-ime/%E5%85%B3%E4%BA%8E%E4%B8%AD%E6%96%87%E7%89%88windo/b5c3190f-bb82-4855-97f0-00d6011e3e33,這個(gè)答非所問,是不是在搞笑?
posted on 2014-04-20 11:22
溪流 閱讀(5485)
評(píng)論(3) 編輯 收藏 引用 所屬分類:
Windows