学校机房,不想让学生清除管理的程序的登录界面。
也许在2000下没办法隐藏,变通的办法,哪种好?如何实现?
1.在登录以前把计算机的某些功能屏蔽掉(网络不能去掉,登录时要用),若强行杀掉进程,则系统无法使用。哪些是关键的功能,如何做?
2.用两个程序,互相检测,发现对方没了,自动运行。如何检测指定的任务是否在运行?
也许在2000下没办法隐藏,变通的办法,哪种好?如何实现?
1.在登录以前把计算机的某些功能屏蔽掉(网络不能去掉,登录时要用),若强行杀掉进程,则系统无法使用。哪些是关键的功能,如何做?
2.用两个程序,互相检测,发现对方没了,自动运行。如何检测指定的任务是否在运行?
退出的时候需要输入密码;强行结束任务总失败
不过我觉得如果删掉注册表run里的键值应该管用,回去试试看:)
我就是放在注册表的RUN中的硬盘有保护卡
条件:需要有调试权限;需要DLL(VB不行,要用C/C++。用现成的也可)
缺陷:单用VB不行
2.多进程监视
条件:进程中运行的必须是能够随时被中断的工作
缺陷:编程关闭进程树能够同时将关联进程一起关闭。
3.做成驱动程序
条件:@#$%^&*会用DDK or Driver Studio/SofIce/C or C++。偶不行,帮不上。
缺陷:工作量大,大材小用。
4.在进程管理器上动手脚
条件:只要会用基本的API即可(FindWindow+FindWindowEx+EnableWindow)
缺陷:无法对付其他各种各样的进程管理器和程序。
5.API钩子,拦截进程枚举的API
条件:要预置钩子
缺陷:影响系统全局性能,目前没人试过。
1.用互斥体。因为互斥体只能创建一个而且程序关闭时会释放互斥体,所以可以不断尝试创建对方已创建的互斥体,如果失败说明对方正在运行,如果成功说明互斥体被销毁,对方已被关闭。2.用隐藏窗体,并把窗体名称设得怪一些。然后用FindWindow来监视。3.用OpenProcess函数。用Shell创建进程后获得ID,不断用OpenProcess获取进程句柄,失败就说明进程已关闭。
把系统的KERNEL32.DLL改名另存,如:kn.dll
然后用封装一个和KERNEL32.DLL接口完全相同的库放回原先的地方
KERNEL32.DLL是超级系统进程,你在里面就可以为所欲为了,包括拦截各种系统操作
我可没这本事,我连它有什么功能都不知道。就会点VB而已。
我的解决办法:用两个程序,互相定时扫描对方,发现对方不在运行,立即启动。
//把系统的KERNEL32.DLL改名另存,如:kn.dll你认为简单,我可不认为。
首先它通不过FPS(文件保护系统)