之前在《ActiveSync合作关系对话框的配置》一文中,曾介绍了如何屏蔽与WinCE设备同步上之后桌面系统弹出的合作关系对话框。如果开发主机安装的是WinXP系统,那还是挺管用的,避免了很多不必要的骚扰。Win7上已经不再需要ActiveSync了,它自带了Windows Mobile设备中心,也不再弹出建立合作关系的对话框,确实方便很多。
今天要介绍的是如何屏蔽WinCE设备端在同步时弹出的提示框。某些专用设备有这样的需求。它们极力的去WinCE化,甚至明显的Android化。更有人给它们起了很好听的名字,WinDroid。如果WinCE系统默认的提示窗口不合时宜的显示出来,就有点煞风景了。
WinCE自带的拨号程序,其源代码位于C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\NETSAMP\RNAAPP,为了实现这个需求,我们可以修改这部分的代码。改动也很简单,将其中的ShowWindow(v_hMainWnd, SW_SHOW)和ShowWindow( hWnd, SW_SHOWNORMAL )全部改为ShowWindow(v_hMainWnd, SW_HIDE),代码中一共有八处调用了ShowWindow()。如果要去除提示音,可以把三处sndPlaySound()的调用注释掉。修改完成后,编译RNAAPP的代码,最后Clean Sysgen就大功告成了。如果想做得好一点,可以通过注册表配置该程序的工作模式,修改后的工作模式可称为Silent工作模式,原来的为正常工作模式,两种模式之间可以任意切换,这样就更灵活了。
WinCE6.0下Silent版的RNAApp.exe可在这里下载,http://download.csdn.net/source/2631531,有需要的可下载来试试看。用法也很简单,如果已经编译好了系统,那只需要将它拷贝到工程目录下,替换原来的文件,然后Make RunTime Image。如果没有编译好系统,可以把它放在BSP的Files目录下,这样编译新的系统时就会自动使用这个Silent版代替原来的。
PS:今天突然发现ActiveSync连上WinCE系统和断开连接时,桌面系统(WinXP)总是会弹出一个资源管理器的窗口。可能是跟昨天装的中国电信的3G拨号程序有些关系。折腾了半天,愣是没去掉,备受折磨啊。有知道的同志,麻烦告诉一声,谢谢了。