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

简介: 原文:WPF触控程序开发(四)——MultiTouchVista_-_second_release_-_refresh_2的救赎起源   Multitouch是一款可用于Win7模拟触摸屏幕的开源软件(关于它的使用介绍),最后一次更新是在11年5月份,我是13年初开始用的,当时开发了一款类似IPhone相册的图片展示触控程序,就是使用的这个模拟器,非常好用。
原文: 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. 成功往往离失败只有一步之遥,不到最后一刻千万不能放弃
  随后我会把一些好玩的代码整理下放到群共享里,有兴趣的可以一起交流下。

 

目录
相关文章
|
前端开发 C# iOS开发
WPF触控程序开发(二)——整理的一些问题
原文:WPF触控程序开发(二)——整理的一些问题   上一篇(WPF触控程序开发)介绍了几个比较不错的资源,比较基础。等到自己真正使用它们时,问题就来了,现把我遇到的几个问题罗列下,大家如有遇到其他问题或者有什么好的方法还望赐教。
1023 0
|
C# iOS开发
WPF触控程序开发(三)——类似IPhone相册的反弹效果
原文:WPF触控程序开发(三)——类似IPhone相册的反弹效果      用过IPhone的都知道,IPhone相册里,当图片放大到一定程度后,手指一放,会自动缩回,移动图片超出边框后手指一放,图片也会自动缩回,整个过程非常和谐、自然、精确,那么WPF能否做到呢,答案是肯定的。
965 0
|
C#
WPF触控方面的技术点
原文:WPF触控方面的技术点 一、基本的触控事件(原始触控)     二、复杂触控事件(操作)
916 0
|
26天前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
|
5月前
|
C#
浅谈WPF之装饰器实现控件锚点
使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。
65 1
|
9月前
|
C# Windows
WPF技术之图形系列Polygon控件
WPF Polygon是Windows Presentation Foundation (WPF)框架中的一个标记元素,用于绘制多边形形状。它可以通过设置多个点的坐标来定义多边形的形状,可以绘制任意复杂度的多边形。
464 0
|
9月前
|
C# Windows
WPF技术之RichTextBox控件
WPF RichTextBox是Windows Presentation Foundation (WPF)中提供的一个强大的文本编辑控件,它可以显示富文本格式的文本,支持多种文本处理操作。
351 0
|
5月前
|
前端开发 C# 容器
浅谈WPF之控件拖拽与拖动
使用过office的visio软件画图的小伙伴都知道,画图软件分为两部分,左侧图形库,存放各种图标,右侧是一个画布,将左侧图形库的图标控件拖拽到右侧画布,就会生成一个新的控件,并且可以自由拖动。那如何在WPF程序中,实现类似的功能呢?今天就以一个简单的小例子,简述如何在WPF中实现控件的拖拽和拖动,仅供学习分享使用,如有不足之处,还请指正。
114 2
|
9月前
|
数据挖掘 数据处理 C#
WPF技术之DataGrid控件
WPF DataGrid是一种可以显示和编辑数据的界面控件。它可以作为表格形式展示数据,支持添加、删除、修改、排序和分组操作。
186 0
|
26天前
|
C# 开发者 C++
一套开源、强大且美观的WPF UI控件库
一套开源、强大且美观的WPF UI控件库
139 0