windows系统的屏幕保护程序是如何在规定的时间内启动的,比如说,设定为等待2分钟,那么在这2分钟之内如果没有任何鼠标键盘事件就启动屏幕保护程序,这该如何实现??

解决方案 »

  1.   

    可不可以这样啊:一个timer设置为2分钟如果有某个事件激发那么就设置timer.enable=false
                              timer.enable=true这样可以了把,但是代码肯定比较繁琐
      

  2.   

    但是,如果我的程序没有界面,或者启动时是最小化,那么我的程序的控件的事件就没法被触发,比如说form1.mousemove是不能被触发的,
      

  3.   

    Windows是靠内部的硬件消息队列判断当有鼠标键盘操作时,Windows内核会填充硬件消息队列(再由各个线程GetMessage得到消息)
    在填充的时候,更新了一个时间变量
    然后专门在一个线程中等待该时间变量与当前时间的差超过一个常数
      

  4.   

    严重关注中,我想是不是用API呢,可我也不会,顶一下先
      

  5.   

    zyl910 : 能说得具体一点吗?
    你说得好复杂,或者给个例子吧!
    呵呵,先谢谢了
      

  6.   

    我说的是Windows操作系统对屏幕保护程序的实现原理
    这种方法对于操作系统而言是最方便的
    一般应用软件实现屏幕保护程序的方法:挂上全局键盘鼠标钩子监测移动
    用VB无法写全局钩子所需的的dll的
    而底层键盘钩子只能在WinNT平台提供
    所以这个问题属于VB基本上不能解决的问题
      

  7.   

    那如果先用某一种语言(c语言行吗?或者java?),写全局钩子所需的的dll,
    这个问题能否解决呢?