1. 在做Mariana项目时遇到一个更新问题,Home页面上有时间、日期、闹钟、运营商、未接电话、未读短信、未读邮件、日程安排等信息需要更新,通过分析发现系统每两秒会接收到消息WM_TODAYCUSTOM_QUERYREFRESHCACHE,因此通过接收到此消息时,向Home窗口发送更新消息,在测试中发现2秒内需要更新的消息太多了,以至于导致消息不能及时更新或系统崩溃,还有做了很多无用功,例如像运营商信息一般是不会变的,而采用这个机制时每两秒钟就发送消息判断运营商是否有变化,浪费资源。发现这个问题后,我就在思考是否可以通过监视注册表的变化来更新这些消息,后面发现函数RegistryNotifyWindow、RegistryNotifyCallback可用于监视注册表。
2. RegistryNotifyWindow和RegistryNotifyCallback的区别:
1)RegistryNotifyWindow 是将指定消息发送到指定的窗口
2)RegistryNotifyCallback 是发送指定消息到自定义的Callback函数
3. 使用RegistryNotifyCallback监视未接电话,更新未接电话数
RegistryNotifyCallback函数说明:
在系统文件snapi.h中已定义了
注册监视未接电话
调用注册表监视时,传递窗口句柄
回调函数处理
注意事项:在类的析构函数中要关闭监听