<var id="pl157"></var>
<cite id="pl157"><noframes id="pl157"><thead id="pl157"><strike id="pl157"><progress id="pl157"></progress></strike></thead>
<var id="pl157"><span id="pl157"></span></var>
<var id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></var>
<cite id="pl157"><video id="pl157"></video></cite><ins id="pl157"></ins>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<cite id="pl157"><span id="pl157"></span></cite><var id="pl157"><video id="pl157"><thead id="pl157"></thead></video></var>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<var id="pl157"><span id="pl157"><menuitem id="pl157"></menuitem></span></var><cite id="pl157"><span id="pl157"><var id="pl157"></var></span></cite>
<var id="pl157"><span id="pl157"></span></var>
<ins id="pl157"><span id="pl157"></span></ins>
<ins id="pl157"><video id="pl157"></video></ins><ins id="pl157"></ins>
<var id="pl157"></var> <cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<ins id="pl157"></ins>
<ins id="pl157"></ins>
<var id="pl157"></var>
<cite id="pl157"></cite><del id="pl157"></del>
<cite id="pl157"><video id="pl157"></video></cite>
<menuitem id="pl157"></menuitem>
<var id="pl157"></var>
<menuitem id="pl157"></menuitem>
<cite id="pl157"></cite>
<progress id="pl157"><ruby id="pl157"><th id="pl157"></th></ruby></progress><var id="pl157"></var>
<ins id="pl157"><noframes id="pl157"><var id="pl157"></var>
<ins id="pl157"><span id="pl157"></span></ins><cite id="pl157"></cite>
<cite id="pl157"><span id="pl157"></span></cite>
隨筆-85  評論-943  文章-0  trackbacks-0
  2018年10月13日
https://streamlet.github.io/
posted @ 2018-10-13 13:19 溪流 閱讀(39) | 評論 (0)編輯 收藏
  2014年12月31日

好久沒寫了,上來先問一個問題。。。羞射。。。

 

有 A、B 兩個窗口,A 是 B 的 Owner,B 不激活不搶焦點。在 B 的 WM_LBUTTONDOWN 的時候,設置 A 窗口為 Capture;在  A 的 WM_LBUTTONUP 的時候 ReleaseCapture。

操作是,在 B 上按下鼠標,然后一直按住鼠標飄啊飄。在某一時機把 B 干掉,繼續動鼠標。此時 A 還在,并且 A 仍然是 Capture 狀態,但是 A 收不到 A 可視范圍外的 WM_MOUSEMOVE 了!在全過程中 A 也沒有收到 WM_CAPTURECHANGED。

 

下面是栗子:

http://pan.baidu.com/s/1mgurJIS

 

求解釋。求解決。謝謝~!

posted @ 2014-12-31 16:03 溪流 閱讀(3505) | 評論 (1)編輯 收藏
  2014年4月20日

內容回顧:

[1]十個步驟找回 Win8 中的微軟拼音新體驗模式

[2]發布個工具,一鍵恢復Win8/8.1中的微軟拼音長句模式(新體驗模式)

在 [1] 中,我們找回了 Win8 里的微軟拼音新體驗模式;在 [2] 中,依照 ePig 提供的方法,我們在 Win8.1 中也搬回了微軟拼音新體驗模式,但留下了一點遺憾,不支持 Metro 應用。

image

(其實還有一點,沒有顯示圖標。)

原本我覺得無所謂,因為我反正不太用 Metro 應用,Metro 下就用自帶的微軟拼音簡捷模式好了。可是,可是,輸入法管理器中,比如保留一個兼容 Metro 的輸入法,導致桌面下也比如保留簡捷模式了,這樣切換輸入法經常切錯,離所謂“一個輸入法”的偉大目標相差甚遠。于是乎,不能忍。然后昨天起來看了下這個問題。

原先微軟拼音輸入法的一個不知什么的GUID是 {81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e},該 GUID 代表的輸入法下有兩個輸入模式,新體驗和簡捷。(這個構架和相關內容我不是很懂,具體請去查閱 TSF (Text Service Framework) 框架相關文檔。) Win 8 下只是刪除了新體驗模式的那個注冊表項并對注冊表項加權限保護達到禁用目的。Win8.1 下的變化是,老的文件被刪除了,且 {81d4e9c9-1d3b-41bc-9e6c-4b40bf79e35e} 被用作新的微軟拼音的 GUID 了,里面也不再分兩個模式了(其實只有原先的簡捷模式)。按照 ePig 提供的方法,從 Win8 中復制相關文件,并把文件中的 GUID 改了,重新注冊進去。這邊我在一鍵恢復工具所帶的文件中是把 GUID 末尾 e 改為了 f,完整的就是 {81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35F}。按道理應該完全兼容才是,起碼 Win8 下是支持 Metro 的。微軟拼音很早就是 TSF 框架了(而不是 Imm),據我之前的了解,要支持 Metro,輸入法使用 TSF 框架就好了。

想不通的情況下,就來比較下 Win8.1 下自帶的微軟拼音(簡捷模式)和我們新加的微軟拼音新體驗模式的注冊表項差異:

image

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

再看下 Win8 的,果然也是有這兩個 Category 的:

image

然后這事情就算成了:

image

一鍵工具已更新,下載頁面:http://www.streamlet.org/Software/MSPYForever/

那么這兩個 GUID 到底是什么呢?Google 一下……

關于前者,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,按字面理解,系統托盤支持,可是查不到官方說明啊,http://msdn.microsoft.com/en-us/library/ms629012.aspx 這一頁啥也不說,是不是bug……

 

不管怎么說,問題是解決了。大快人心。

 

再順便黑下大微軟。

無標題

看這張圖,我在寫代碼或寫Word或者寫別的文字,開著中文語言下的中文輸入法(寫代碼怎么會開中文?不要在意這些細節……),然后來了條 QQ 消息。我去任務欄點企鵝圖標。結果剛點下,因為任務欄、桌面是英文語言下的美式鍵盤,輸入法指示器變為 ENG,縮短了,企鵝圖標跑右邊去了,點空了!!!

正因為如此,我以前總是把英文語言刪掉,只有中文語言,下面一個輸入法,靠 Shift 在輸入法內切換中英文。可是 Shift 很容易誤操作有木有。最佳的方式還是中文語言下的美式鍵盤……這個問題很早之前研究過幾個小時,但沒啥結果,后來想,如果真的沒辦法了,干脆寫一個空的輸入法原樣輸入輸出,叫做“美式鍵盤”得了。為啥中文下就不給鍵盤布局呢?為什么呢為什么呢為什么呢?

昨天又去網上搜了下,結果高人已經給出了方法了,不知道哪篇是原創,就不引用了,有興趣的自己搜。這里還有個半官方的出處: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。但其實美式鍵盤沒有圖標,會顯示“簡體”,所以也會有長短變化。最佳的方法還是恢復成語言欄的樣子:

image

這下同在中文語言下了,Ctrl+Shift 切輸入法,怎一個舒服了得~!至此,Win8、Win8.1 的輸入法問題對我個人而言已經全部解決了,可以大規模重裝系統了。

忍不住再黑下大微軟: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 @ 2014-04-20 11:22 溪流 閱讀(4848) | 評論 (3)編輯 收藏
  2014年3月26日

(cnBeta:http://www.cnbeta.com/articles/277936.htm

首先貼個圖,大家來一起念臺詞~

MSPYForever

 

念完了木有?很激情澎湃義憤填膺有木有?

 

這事情最早追溯到前年 8 月的一篇文章《十個步驟找回 Win8 中的微軟拼音新體驗模式》,其實就是手工注冊一個COM完事,只是傻逼大微軟刻意弄了注冊表權限來屏蔽,操作起來略微繁瑣。到目前為止,Win8重裝系統已經不下十次了,每次都是這樣手工操作,我已經厭倦了。

另外還有Win8.1上的問題,由于傻逼大微軟已經完全刪除了文件,就沒法這么搞了,就算從Win8拷過文件來,也無法簡單注冊使用。加上我對8.1非常非常不感冒,一直沒去研究。前些天看到之前的那篇文章里 Charles Leigh 回復了兩篇文章(ePig 那篇是原創吧貌似,感謝),提供了解決方案。于是上個周末到現在就搗鼓個一鍵恢復工具,方便自己以后重裝用,也方便廣大微拼黨。

微拼黨(包括我)孜孜不倦的追求微拼長句模式的情懷,讓我非常感動。希望傻逼大微軟看到我們的心聲。別搞什么破詞組輸入法了,你搞不過本土這么多廠家的,你的下限也沒有本土廠家低,唯一的優勢可能就是沒廣告沒彈窗了吧。至于輸入算法什么的,在詞組模式里面根本不足以體現得太多,長句模式才是考驗啊。回頭吧!

下載頁面:http://www.streamlet.org/Software/MSPYForever/

CodePlex 項目頁面:https://mspyforever.codeplex.com/

 

請微拼黨們多傳播。有 Bug 及時反饋。

posted @ 2014-03-26 01:10 溪流 閱讀(4988) | 評論 (24)編輯 收藏
  2013年6月25日
     摘要: Timer這玩意兒很常用,卻又很煩人。煩人之處有四: 1.         如果將其設到HWND上,則 a)         必須手工維護Timer的ID,小心翼翼地保證這些ID不重復,可能有人(比如我)就不怎么喜歡手工維護硬編碼的ID。 ...  閱讀全文
posted @ 2013-06-25 00:18 溪流 閱讀(4345) | 評論 (6)編輯 收藏
僅列出標題  下一頁
<var id="pl157"></var>
<cite id="pl157"><noframes id="pl157"><thead id="pl157"><strike id="pl157"><progress id="pl157"></progress></strike></thead>
<var id="pl157"><span id="pl157"></span></var>
<var id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></var>
<cite id="pl157"><video id="pl157"></video></cite><ins id="pl157"></ins>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<cite id="pl157"><span id="pl157"></span></cite><var id="pl157"><video id="pl157"><thead id="pl157"></thead></video></var>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<var id="pl157"><span id="pl157"><menuitem id="pl157"></menuitem></span></var><cite id="pl157"><span id="pl157"><var id="pl157"></var></span></cite>
<var id="pl157"><span id="pl157"></span></var>
<ins id="pl157"><span id="pl157"></span></ins>
<ins id="pl157"><video id="pl157"></video></ins><ins id="pl157"></ins>
<var id="pl157"></var> <cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<ins id="pl157"></ins>
<ins id="pl157"></ins>
<var id="pl157"></var>
<cite id="pl157"></cite><del id="pl157"></del>
<cite id="pl157"><video id="pl157"></video></cite>
<menuitem id="pl157"></menuitem>
<var id="pl157"></var>
<menuitem id="pl157"></menuitem>
<cite id="pl157"></cite>
<progress id="pl157"><ruby id="pl157"><th id="pl157"></th></ruby></progress><var id="pl157"></var>
<ins id="pl157"><noframes id="pl157"><var id="pl157"></var>
<ins id="pl157"><span id="pl157"></span></ins><cite id="pl157"></cite>
<cite id="pl157"><span id="pl157"></span></cite>
快三3稳赚技巧钱绝招
<var id="pl157"></var>
<cite id="pl157"><noframes id="pl157"><thead id="pl157"><strike id="pl157"><progress id="pl157"></progress></strike></thead>
<var id="pl157"><span id="pl157"></span></var>
<var id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></var>
<cite id="pl157"><video id="pl157"></video></cite><ins id="pl157"></ins>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<cite id="pl157"><span id="pl157"></span></cite><var id="pl157"><video id="pl157"><thead id="pl157"></thead></video></var>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<var id="pl157"><span id="pl157"><menuitem id="pl157"></menuitem></span></var><cite id="pl157"><span id="pl157"><var id="pl157"></var></span></cite>
<var id="pl157"><span id="pl157"></span></var>
<ins id="pl157"><span id="pl157"></span></ins>
<ins id="pl157"><video id="pl157"></video></ins><ins id="pl157"></ins>
<var id="pl157"></var> <cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<ins id="pl157"></ins>
<ins id="pl157"></ins>
<var id="pl157"></var>
<cite id="pl157"></cite><del id="pl157"></del>
<cite id="pl157"><video id="pl157"></video></cite>
<menuitem id="pl157"></menuitem>
<var id="pl157"></var>
<menuitem id="pl157"></menuitem>
<cite id="pl157"></cite>
<progress id="pl157"><ruby id="pl157"><th id="pl157"></th></ruby></progress><var id="pl157"></var>
<ins id="pl157"><noframes id="pl157"><var id="pl157"></var>
<ins id="pl157"><span id="pl157"></span></ins><cite id="pl157"></cite>
<cite id="pl157"><span id="pl157"></span></cite>
<var id="pl157"></var>
<cite id="pl157"><noframes id="pl157"><thead id="pl157"><strike id="pl157"><progress id="pl157"></progress></strike></thead>
<var id="pl157"><span id="pl157"></span></var>
<var id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></var>
<cite id="pl157"><video id="pl157"></video></cite><ins id="pl157"></ins>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<cite id="pl157"><span id="pl157"></span></cite><var id="pl157"><video id="pl157"><thead id="pl157"></thead></video></var>
<cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<var id="pl157"><span id="pl157"><menuitem id="pl157"></menuitem></span></var><cite id="pl157"><span id="pl157"><var id="pl157"></var></span></cite>
<var id="pl157"><span id="pl157"></span></var>
<ins id="pl157"><span id="pl157"></span></ins>
<ins id="pl157"><video id="pl157"></video></ins><ins id="pl157"></ins>
<var id="pl157"></var> <cite id="pl157"><video id="pl157"><menuitem id="pl157"></menuitem></video></cite>
<ins id="pl157"></ins>
<ins id="pl157"></ins>
<var id="pl157"></var>
<cite id="pl157"></cite><del id="pl157"></del>
<cite id="pl157"><video id="pl157"></video></cite>
<menuitem id="pl157"></menuitem>
<var id="pl157"></var>
<menuitem id="pl157"></menuitem>
<cite id="pl157"></cite>
<progress id="pl157"><ruby id="pl157"><th id="pl157"></th></ruby></progress><var id="pl157"></var>
<ins id="pl157"><noframes id="pl157"><var id="pl157"></var>
<ins id="pl157"><span id="pl157"></span></ins><cite id="pl157"></cite>
<cite id="pl157"><span id="pl157"></span></cite>