随笔-85  评论-943  文章-0  trackbacks-0
  2018年10月13日
https://streamlet.github.io/
posted @ 2018-10-13 13:19 溪流 阅读(19) | 评论 (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 溪流 阅读(3488) | 评论 (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 溪流 阅读(4812) | 评论 (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 溪流 阅读(4920) | 评论 (24)编辑 收藏
  2013年6月25日
     摘要: Timer这玩意儿很常用,却又很烦人。烦人之处有四: 1.         如果将其设到HWND上,则 a)         必须手工维护Timer的ID,小心翼翼地保证这些ID不重复,可能有人(比如我)就不怎么喜欢手工维护硬编码的ID。 ...  阅读全文
posted @ 2013-06-25 00:18 溪流 阅读(4326) | 评论 (6)编辑 收藏
仅列出标题  下一页