[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理版简易Windows桌面锁,自带关屏幕功能

简易Windows桌面锁,自带关屏幕功能自己一直对批处理有浓厚兴趣,觉得这种机器语言即容易学又方便,所以一直想用它来做一个程序,奋斗了2晚上,做了这么一个的简易Windows桌面锁,自带关屏幕功能
现在将源码公布,欢迎大家来使用!

其中有4点编程想法需要向大家说明一下:
1、采用临时密码即在程序开始时输入一个密码,退出时验证密码。过程中将密码赋予一个变量A,再取随机数变量B,用A*B得到变量C,将B、C保存在一个临时的.INI文件中,需要密码时再还原出来,同时删除.INI文件。这样就不会保留你的任何密码信息,其他人就算查看源码也不知道你曾经常用的密码。(虽然可以直接将密码存在变量中,但本源码中考虑供新手学习批处理读取文档的方法故这样做;而且这样做可以防止保存密码的变量发生未知错误,而导致无法解锁。)

2、使用2个批处理同时运行以确保关屏幕功能能够不受主批处理的影响自动循环关屏幕。我在输入密码后而创建一个文本文档,用来标记关屏幕程序可以开始工作,又导出一个新的次批处理,以用来任何情况下都每10秒关屏幕一次,以防止因用户移动鼠标键盘而导致屏幕长亮;而当用户输入密码正确后,主批处理会删除文本文档,用来告诉次批处理,停止关屏幕。然后主批处理删除次批处理,且结束CMD.EXE进程(如果不结束进程,次批处理窗口不会关闭,主批处理也会因建立了Explorer进程而不自动退出。)

3.在这个版本中,用Quick Batch File将CloseLCD合并入了批处理中,也取消了快捷方式的创建,使得程序仅是一个exe文件,使用起来更加方便和随意,可以随意重命名和移动位置。
4.加入了终止Taskmgr.exe(任务管理器)进程方法(自动建立一个循环终止Taskmgr.exe进程的批处理,在用户输入正确密码后删除本身。),使得无法在任务管理器中新建explorer进程,不过令人遗憾的是,可以用Alt+Tab切换到这个批处理,关闭它,从而可以用任务管理器新建explorer进程,不知道有谁有好方法,可以在不影响用户输入密码的同时又循环结束Taskmgr.exe进程
,我自己也在考虑这个问题。

下面是源码(不附带CloseLCD.exe程序),因为不能上传,所以我给个连接下载 桌面锁.exe 程序和单独的关屏幕程序。
  1. @echo off
  2. title Windows桌面锁
  3. color 3f
  4. mode con cols=70 lines=17
  5. cls
  6. goto code
  7. :start
  8. cls
  9. del ms.txt>nul
  10. del ColseLCD.bat>nul
  11. del config.ini>nul
  12. del ColseLCD.exe>nul
  13. del killtaskmgr.bat>nul
  14. echo 
  15. echo 欢迎您再次使用,再见。
  16. echo.
  17. start explorer.exe
  18. taskkill /f /im cmd.exe>nul
  19. exit
  20. :run
  21. echo .>ms.txt
  22. taskkill /f /im explorer.exe>nul
  23. echo @echo off>ColseLCD.bat
  24. echo title ColseLCD>>ColseLCD.bat
  25. echo :top>>ColseLCD.bat
  26. echo IF EXIST ms.txt (goto colse) ELSE (goto exit)>>ColseLCD.bat
  27. echo :colse>>ColseLCD.bat
  28. echo ping /n 9 127.0.0.1>nul>>ColseLCD.bat
  29. echo ColseLCD.exe>>ColseLCD.bat
  30. echo goto top>>ColseLCD.bat
  31. echo :exit>>ColseLCD.bat
  32. echo exit>>ColseLCD.bat
  33. echo :top>killtaskmgr.bat
  34. echo taskkill /f /im taskmgr.exe>nul>>killtaskmgr.bat
  35. echo ping /n 1 127.0.0.1>nul>>killtaskmgr.bat
  36. echo goto top>>killtaskmgr.bat
  37. start /min ColseLCD.bat
  38. start /min killtaskmgr.bat
  39. goto login
  40. :code
  41. cls
  42. echo 欢迎使用,Windows桌面锁!
  43. echo.
  44. echo 本程序允许在非商业用途下复制、传播和修改,请在不妨碍使用的情况下注明版权信息。
  45. echo 作者:羅什麽
  46. echo 邮箱:mosesleo@sina.com
  47. echo -------------------------------------------
  48. echo 输入密码后将锁定桌面。
  49. set /p g=请输入一个密码(仅数字且小于8位):
  50. set /a p1=%random%%%1000
  51. set /a key=%g%*%p1%
  52. echo [UserDate]>config.ini
  53. echo 00 34624002>>config.ini
  54. echo 01 %p1%>>config.ini
  55. echo 02 %key%>>config.ini
  56. goto run
  57. :login
  58. cls
  59. echo 系统已锁定,10秒后关闭显示器。如果你忘记密码只能重启,但会丢失正在运行且未保存的信息。
  60. set aa=error
  61. set /p aa=请输入密码解锁:
  62. for /f "eol=[ tokens=1,2" %%i in (config.ini) do Set C%%i=%%j
  63. set /a code=%C02%/%C01%
  64. IF NOT "%code%"=="%aa%" (
  65.     echo 密码错误,3秒后返回。
  66.     echo 
  67.     ping /n 3 127.0.0.1>nul
  68.     goto login
  69. ) ELSE (
  70.     goto start
  71. )
复制代码

下载地址:http://bbs.verybat.org/viewthread.php?tid=19278&extra=page%3D1

[ 本帖最后由 asesinol 于 2009-10-8 01:04 编辑 ]

本版规则
  1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
  2、求助时,务必在顶楼一次性把问题交代清楚;若需求有变更,请在顶楼更新;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
  3、若所发代码不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
  4、标题模糊的帖子一律关闭;若此类帖子下有有价值的回帖,将一律屏蔽;


Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html

参考:批处理之家论坛使用常见问题FAQ
http://bbs.bathome.net/thread-3473-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2楼 的帖子

无奈程序区不能发帖?只好借地与此。

TOP

楼主看不懂红色标注部分??跟程序区不能发帖有何关系??

[code]
::your code
[/code]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

你提供的CloseLCD.exe下载之后解压,是空的。请重新检查一下。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-10-7 23:02 发表
你提供的CloseLCD.exe下载之后解压,是空的。请重新检查一下。


因为我不能上传RAR,所以我只给了下载地址,CloseLCD.rar并没有上传成功

TOP

回复 6楼 的帖子

请问你提供的下载地址在哪里?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-10-8 11:42 发表
请问你提供的下载地址在哪里?



代码下面,帖子的最底部

TOP

看来除了管理员,没有其他人在意这种东西啊

TOP

回复 8楼 的帖子

关于这个链接,5楼已经提出疑问,能否请你检查一下?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表