內(nèi)容回顧:
[1]十個步驟找回 Win8 中的微軟拼音新體驗模式
[2]發(fā)布個工具,一鍵恢復Win8/8.1中的微軟拼音長句模式(新體驗模式)
在 [1] 中,我們找回了 Win8 里的微軟拼音新體驗模式;在 [2] 中,依照 ePig 提供的方法,我們在 Win8.1 中也搬回了微軟拼音新體驗模式,但留下了一點遺憾,不支持 Metro 應用。

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

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

然后這事情就算成了:

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

看這張圖,我在寫代碼或?qū)慦ord或者寫別的文字,開著中文語言下的中文輸入法(寫代碼怎么會開中文?不要在意這些細節(jié)……),然后來了條 QQ 消息。我去任務(wù)欄點企鵝圖標。結(jié)果剛點下,因為任務(wù)欄、桌面是英文語言下的美式鍵盤,輸入法指示器變?yōu)?ENG,縮短了,企鵝圖標跑右邊去了,點空了!!!
正因為如此,我以前總是把英文語言刪掉,只有中文語言,下面一個輸入法,靠 Shift 在輸入法內(nèi)切換中英文。可是 Shift 很容易誤操作有木有。最佳的方式還是中文語言下的美式鍵盤……這個問題很早之前研究過幾個小時,但沒啥結(jié)果,后來想,如果真的沒辦法了,干脆寫一個空的輸入法原樣輸入輸出,叫做“美式鍵盤”得了。為啥中文下就不給鍵盤布局呢?為什么呢為什么呢為什么呢?
昨天又去網(wǎng)上搜了下,結(jié)果高人已經(jīng)給出了方法了,不知道哪篇是原創(chuàng),就不引用了,有興趣的自己搜。這里還有個半官方的出處: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。但其實美式鍵盤沒有圖標,會顯示“簡體”,所以也會有長短變化。最佳的方法還是恢復成語言欄的樣子:

這下同在中文語言下了,Ctrl+Shift 切輸入法,怎一個舒服了得~!至此,Win8、Win8.1 的輸入法問題對我個人而言已經(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,這個答非所問,是不是在搞笑?
posted on 2014-04-20 11:22
溪流 閱讀(5485)
評論(3) 編輯 收藏 引用 所屬分類:
Windows