不用HOOK实现倒计时对话框
来源:互联网 发布:淘宝1号店 编辑:程序博客网 时间:2024/05/17 02:47
这里所说的倒计时对话框不是自定义对话框,自定义对话框很简单;也不是MessageBoxTimeout定时对话框,定时对话框是时间一到自动关闭。所谓倒计时对话框是由系统弹出的MsgBox对话框,是要在对话框上面动态地显示倒计时间,比如:10,9,8,7,6,5,4,3,2,1秒,然后自动关闭。实现的方法是用多媒体计时器API函数timeSetEvent,当模式对话框一弹出,像Timer这样的计时器都将被挂起,所以不能用Timer来实现,但timeSetEvent却可以,该API函数内部实现多线程,当用鼠标按住模式对话框的标题栏拖动对话框窗口时,不会影响回调的执行,不会影响倒计时间运行,也就是不会挂起timeSetEvent使用的回调函数TimeSetProc。从这一点来看,timeSetEvent比高精度频率计数器QueryPerformanceCounter、QueryPerformanceFrequency优越,前者会自动刷新界面,但后者不会(这里有一个例子可以对比:http://blog.csdn.net/chenjl1031/archive/2008/01/09/2032579.aspx)。
程序首先在TimeSetProc回调中枚举所有顶级窗口和子窗口,找到模式对话框的句柄和对话框提示文本的句柄,然后发送消息WM_SETTEXT动态地更新时间,时间一到发送消息WM_CLOSE关闭该模式对话框,并关闭多媒体计时器对象;如果响应了鼠标按钮,则直接关闭多媒体计时器对象。
非常遗憾的是,该程序只能编译成P代码才能正常运行。原因是TimeSetProc回调中调用了枚举顶级窗口和子窗口的回调,把这几行删除则可以编译成本地代码运行,但就不能实现该程序的功能了。
标准模块:
测试窗体代码:
- 不用HOOK实现倒计时对话框
- 用HOOK实现倒计时对话框
- 不用线程实现倒计时
- 不用汇编实现HOOK MessageBoxW
- Ring3下实现进程保护,不用hook
- 倒计时对话框
- 不用属性页方法实现 上一步 下一步 对话框功能
- 仿ios各种对话框实现,妈妈再也不用担心了
- 不用hook,取得QQ密码
- android 倒计时 实现,很简单方便的一种方法,不用考虑资源释放
- 不用Hook也能实现方面快捷的换肤功能
- 不用Hook也能实现方面快捷的换肤功能
- 实现倒计时
- HOOK实现
- hook入门 实现本地hook
- 不用splitter控件 简单实现对mfc对话框的分割的方法
- 倒计时对话框,自己写得比较乱
- Android 商品倒计时(DigitalClock实现倒计时 )
- Mysql replace函数不能使用正则表达式的解决
- 静态实例初始化要点
- String常用函数
- 学习笔记2——建立列表
- IPD集成产品开发
- 不用HOOK实现倒计时对话框
- typedef定义函数指针
- Centos 5.3 64挂载ntfs格式的硬盘
- 现在和未来。。
- QObject(2) - 子对象
- linux下apache tomcat mod_jk 负载均衡+集群+session 复制
- 复习计算机网络【1】
- 第十三章 复制控制
- 不错