- 最后登录
- 2012-8-30
- 在线时间
- 44 小时
- 阅读权限
- 10
- 注册时间
- 2009-7-28
- 积分
- 93
- 帖子
- 61
- 精华
- 0
- UID
- 105685
- 性别
- 保密

- 积分
- 93
- 帖子
- 61
- 精华
- 0
- UID
- 105685
- 性别
- 保密
|
楼主太有创意了,太有才了,赞一个。楼上好多人担心不好实现,我来解释一下,其实这个很容易实现的。我来简单说一下实现步骤。
PS:我只会简单的VB,所以只能拿VB来举例子,但是其实所有程序的思路都是一样的。
1、创建一个窗口,咱们叫窗口A,属性为没有边框,并且透明化背景。在from_load中写入窗口最大化代码,再写入窗口总在最前代码。说通俗了就是当打开这个窗口的时候,该窗口默认最大化,并且在所有窗口包括桌面的前面,这样做的目的就是通过一个最前端透明窗口,限制用户操作,其实也不是真的限制了,就是你每次点击鼠标其实都是点击在这个窗口上,由于窗口上什么都没有,所以电脑不会做出任何反应,给人的感觉就是被限制操作了。
2、创建一个java(或者VB)的魔方程序,镶嵌到刚才说的那个窗口A中。按照其他魔方软件,当魔方复原之后,不是要输出一个成绩吗,这次不用输出成绩,直接触发一段代码,代码的内容就是unload第一步说的窗口A。通俗的讲,就是当魔方复原之后,关闭窗口A。
简单的说就这两步就能完成,是不是很简单?不是,为了限制一些操作,还要有一大堆的辅助容错代码支撑。包括:
3、开机自动运行窗口A,方法有很多种,可以写入注册表、可以写入msconfig,可以直接把执行文件拷贝到run文件夹,可以捆绑explorer.exe等等……当然都是由程序来完成。对于用户来说,这一步是在安装该软件的时候,就已经完成了。或者通过用户单独设置也可以。
4、大家都知道,一般的运行程序,通过Alt+F4可以强行关闭,或者通过Ctrl+Alt+del打开任务管理器,进行强行关闭,这样咱们的程序就失效了!为了避免这种作弊行为,需要一个键盘钩子程序,把键盘的所有热键全部都“挂”起来。简单的理解就是限制住所有热键Alt+F4、Alt+Tab、win+Tab等等。然后,再通过强行打开任务管理器并且隐藏任务管理器的方法,是用户无法看到Ctrl+Alt+del等一系列方法锁打开的“任务管理器”这样,就无法强行关闭该程序了。
当然,最安全的方法就是通过钩子程序把键盘的所有按键都“挂”起来,简单的说就是是键盘完全失灵,这样可以避免windows的一些BUG,导致程序失效。
完了
就这些,完全可以实现LZ所要求的效果。而且无懈可击(安全模式除外)
为啥我能说的这么清楚?因为上个月我刚写完一个软件,就是一个登陆软件,为一个楼宇自动化控制软件写了一个插件,达到的目的和楼主说的差不多,只不过我们要求的是操作人员姓名和密码,不是魔方,呵呵……想了想完全通用。
PS:我看到楼上有人说可以对复原时间做一些限定,也很简单,只是调整一下unload窗口A的条件就行了,java魔方软件最后不是输出个时间t么?直接把t与设定时间T作对比,如果t<T,那么关闭窗口A。这样就行了。
请各位大侠评判 |
|