关于Windows服务的问题
http://community.csdn.net/Expert/topic/3455/3455987.xml?temp=.9912073寻求:系统登陆后,<立即>屏蔽鼠标和键盘的解决方案
http://community.csdn.net/Expert/topic/3479/3479390.xml?temp=.8862879**********************************************************************以上两个问题是我前不久提出来的,经过大家的提示和我自己的n次测试下来,总算找了一个又简单又高效的解决方法。再说一下我的目的:
    就是在用户登陆后,到用户程序启动起来的间隙里(XP大约2、3秒)禁止用户使用鼠标和键盘。做法:
    做一个Hook.exe这个程序里面就是全局挂钩,分别把鼠标和键盘都钩住,至于这个程序有没有界
面都无所谓,你也可以弹出一个对话框,提示“当前鼠标和键盘已经被禁止掉了,请等待……”,等
等。再做一个Win32程序,例如名字叫Starter.exe,不要控制台程序,控制台程序会有一个命令行窗
口的,所以不好看。这个程序唯一的功能就是把Hook.exe运行起来,运行起来之后加少许的Sleep(3
000)。为什么要加Sleep呢,这是因为Hook.exe被运行起来也是需要一点点时间的,我设的3秒我个人
觉得是最大值了,这个还是主要取决于Hook.exe,如果里面初始化工作多的,就设大点,一般不会超
过3秒的。在这3秒里呢,Windows除了桌面壁纸其他什么都没有,当然,如果你之前Hook.exe里会弹
出提示对话框的话,那也会在这时弹出来的。3秒后,Windows桌面内容就全部显示出来了,因为Hook
.exe已经运行着了,所以鼠标和键盘早早的就被锁住了。
    最后,只要在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]加
入这个Starter.exe的运行项就可以了。    此外,需要注意的是,注册表中的这个键是需要维护的,就是说,在每次运行Hook.exe或者Starter.exe都要重新写入。    一切OK了!!!这种方法有简单,有高效,我研究很久的哦!!!缺点:
    全局系统挂钩在9x下不起作用,只有2000、XP、2003下有效。(我看MSDN并没有说9x不支持挂钩,只是说不支持低级挂钩。嗨!看来我还需要研究研究,或者哪位大虾知道怎么在98下使用挂钩的,请指点指点小弟!!!谢啦!!!)--- 完 ---

解决方案 »

  1.   

    TMD,就和你们说实话吧,NT下还有一种东西的叫
    Winlogon通知包(Winlogon Notification Package)
    这东西可以监视Winlogon的很多事件如Lock[REG_SZ]:锁定桌面事件。
    Logoff[REG_SZ]:注销事件。
    Logon[REG_SZ]:登陆事件。
    Shutdown[REG_SZ]:关机事件。
    StartScreenSaver[REG_SZ]:启动屏保事件。
    StartShell[REG_SZ]:启动shell(一般指explorer.exe)事件。
    Startup[REG_SZ]:系统开机事件。
    StopScreenSaver[REG_SZ]:停止屏保事件。
    Unlock[REG_SZ]:解除桌面锁定事件。欲知详情,请看http://community.csdn.net/Expert/topic/3581/3581788.xml?temp=6.821841E-02