WPF触控程序开发(四)——MultiTouchVista_-_second_release_-_refresh_2的救赎

起源

  Multitouch是一款可用于Win7模拟触摸屏幕的开源软件(关于它的使用介绍),最后一次更新是在11年5月份,我是13年初开始用的,当时开发了一款类似IPhone相册的图片展示触控程序,就是使用的这个模拟器,非常好用。最近大家看了我之前写的几篇博客,要求上代码,我把代码翻了出来,本打算上传,怕有什么bug贻笑大方,于是想再次运行调试一下,结果让我莫名其妙,Multitouch失效了,红点出来了,可是点屏幕上任何地方都没有反应,关键是这玩意一旦接管鼠标鼠标就失效了,再加上它自己失效,一般人还没法返回正常桌面了。打开画图,发现不管红点怎么画,都只会在一个固定的区域画,这时我还很淡定,把驱动卸了试试看呢,卸掉驱动重装,还是不起作用,上网搜各种资料,相当少,没有一个能解决的。于是,开始了一段奇妙的经历......

假象

  我很喜欢分析问题,10个月前还好好的,这10个月内发生了什么让它失效了呢?我想不外乎这几个方面,硬件不兼容,软件冲突,中毒,被卫士搞了,系统配置被改......前不久系统重装了一次,当时为了升级SP1装VS2013,原系统一直升级不了就重装了。由于原始驱动没找到,就在网上东一枪西一炮地找了些驱动装上了,结果系统还算稳定,除了有个喇叭会间歇性罢工。我想会不会是驱动不兼容呢,那就麻烦了,也不知道是哪个驱动不兼容,再次重装?那可不是开玩笑的,开发人员的电脑,你懂的,动一动等于蜕层皮,而且重装了能不能解决我也没底,但是目前我只有这个法子了。那天正好是周末,歇在家里,一大早得爬起来脸也没洗,老婆在玩她自己的电脑,她的是台机,装的Win8.1,上网搜了下,这软件对于8.1貌似还不支持,我想拿她的重装Win7试试,于是就想说服她重装系统,结果没谈得下来,想想还是不要浪费时间了,抓紧重装吧。

  花了一上午把文件导出来了,11点左右开始重装的,找到了自带的驱动盘,费了些周折差不多下午2点多了,总算是把驱动都装上了,装完第一件事就是试试好用没,我还记得当时打开那个手掌时期待的眼神,结果可以用,当时我就断定,就是驱动的原因。好了,原因找到了,可以完美收工了,把该装的都装上,该打的补丁都打上,弄到晚上12点,所有的事情都做好了,开在那里用360打补丁,100多个,不等了,就去睡了。第二天醒来赶着去上班,打开电脑看了下,补丁应该都打完了(睡前开的是修补完自动关机模式,早上电脑已经关机了,开机后也没有看到更新画面),又试了下Multitouch依然可以用,放心得去上班了。后来在公司想找个文件,在家里的电脑里,就远程了家里的电脑,360提醒又有25个补丁要更新,我一向是会打的,打完之后还试了下,Multitouch没问题,就把电脑关了。

疯了

   下班回家打开电脑,开机显示系统更新,心想应该是正常的,因为白天在公司又远程它打补丁了,更新完进入系统,奇迹发生了,Multitouch又失效了!这结果好像给了我当头一棒,打懵了。昨天搞了一天弄到晚上12点,都付之东流了。我想是不是更新之后把什么服务禁掉了所以才失效了,但是是哪个服务呢,在不知道是哪个服务的情况下,我只有把所有的服务都开起来!我敢打赌,为了一个软件把所有服务都开起来的人,这世上不会有很多。当时我已经快疯了,弄到晚上10点多,能开的服务都开起来了,依然无效。实在没辙,我想,要不就不要这个了吧,不是说VS2012开始已经支持触控程序开发了吗,我现在都装了13了,上网搜,找不到任何关于VS2013可以开发触控程序的资料。时间不知不觉又过了午夜了,当时整个人的状态很累,很不甘心,很无奈,脑子也很热,人脑子一热很多事都可以做的出来,于是我又一次重装了系统,原因是,我基本可以断定是补丁引起了失效,而且是在后来的25个补丁里面的某一个或者某些个,可惜当时没有截图,这就不说了,最重要的是,I will find you!我不可能就这么算了,我一定要把你揪出来!

计划

   重装好系统之后已是凌晨两点,本想继续弄,想想还是让身体歇会,让脑子清醒一下,由于过了睡点,躺床上到4点半还没睡着,脑子在梳理这个事情的对策,它不是有100多个补丁嘛,我逐个给你打上,看打了哪个引起你失效,不行,有的补丁得重启电脑生效,一个一个来太慢了,10个10个来,顶多来个10来次就可以分析出来。那如果某批10个装了引起了失效,如何确定10个中是哪个呢,对,弄个一键还原,失效后还原回去,省去重装系统的麻烦,可以按补丁大小排下序,小补丁安装时间短,一批可以定为20个,大补丁安装慢,一批可以定为5个...肚子饿得蛙声一片,起来啃了个小面包对付着睡了。

   次日下班回来,我按照我的计划,开始寻找引起失效的补丁,首先找了个一键还原的软件,备份了系统,我要试验一键还原之后的效果怎么样,好家伙备份了40分钟。备份好了之后,不经意间,发现360打的补丁是可以卸载的,我仿佛嗅到了一条捷径,既然补丁可以卸载,那我就有机会回退到某个时刻,卸总比装来得快吧。可惜补丁管理里的列表没法导出来,于是我按补丁编号从小到达排了下序,每11个一屏截了图保存,每卸11个重启一下电脑,看Multitouch有没有生效。一开始我还是信心满满,越到后来我就越心虚,运气很不好卸了9次还是没生效。虽然我也一直给自己打气,要自信,直到最后一次的时候,我彻底奔溃了,最后一批,卸完了,还没重启电脑,我想,可能我这个思路是行不通的,即使卸掉了补丁,系统的配置可能还是没法回退,既然如此,只能用昨晚躺床上想出来的对策了。

重生

   当时已经晚上9点多,不算太晚,就打算重装了,重启电脑,结果奇迹又一次发生了,Multitouch生效了!这感觉应该就是起死回生吧。这巨大的冲击我脑子里立马闪过一句话,不到最后一刻千万不能放弃!事后想想我当时应该按编号降序排的,那样应该很快就能找到。不多久,我就找到了那个补丁,代号是KB2993651,在SP1系统后没有打任何补丁的情况下,打这个补丁就会使Multitouch失效,卸掉之后就生效,那么,我就有充分的理由相信,就是这个补丁的原因。

   事后,老婆问我折腾了这么久有何感想,我说:“我估计就连开发这玩意儿的人都想不到,自己竟然是被微软的这个补丁干掉的吧。”结果她的一句话让我当场就笑了,她说:“我妈还偷偷跟我商量,要不重新给你买个电脑吧。”(这几天丈母娘在我家带闺女,天天看我搞那么晚睡估计心疼了)

真相

  今天到单位之后用单位的电脑试,卸了那个补丁之后还是不生效,还需要卸掉一个补丁,代号是KB2973201(如何发现的大家可以加群交流~),这俩补丁卸了之后Multitouch就可以使用了。360漏洞修复里设置关闭弹窗提醒,以后开机就不会提示了。

下图是这俩补丁的截图:

 
用360卸掉就可以了。
 
  到此为止这就算完美结束了,总结一下感受:
  1. 考虑事情要周全,万一发生什么,要提前想好对策
  2. 自信要有基础,盲目自信要吃大亏
  3. 成功往往离失败只有一步之遥,不到最后一刻千万不能放弃
  随后我会把一些好玩的代码整理下放到群共享里,有兴趣的可以一起交流下。

 

你可能感兴趣的:(refresh)