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

[问题求助] [已解决]VBS提示“缺少对象:number” 添加变态密码

反复看来不知道那里出错了
以下是vbs脚本
  1.   strComputer   =   "."   
  2.   strOut   =   ""   
  3.   Set   objWMIService   =   GetObject("winmgmts:"   _   
  4.           &   "{impersonationLevel=impersonate}!\\"   &   strComputer   &   "\root\cimv2")     
  5.   Set   colDiskDrives   =   objWMIService.ExecQuery   _           
  6.           ("Select   *   from   Win32_DiskDrive")   
  7.   For   each   objDiskDrive   in   colDiskDrives   
  8.         strOut   =   strOut   &   "   "   &   vbTab   &     objDiskDrive.Signature   
  9.   Next   
  10.   Wscript.Echo    strOut-strOut-strOut '这里是硬盘的序列号(去掉 - 号) 这句可以不用
  11. dim a,s
  12. s=0 '设置计数器
  13. set m   =   strOut-strOut-strOut-3*7 '工具硬盘序列号 添加复杂一点的密码
  14. do
  15. a=inputbox("请输入暗码")
  16. if a=m then
  17. msgbox "认证成功"
  18. exit do
  19. else
  20. if s=1 then '设置认证次数为1
  21. msgbox "已经达到认证上限, 认证程序关闭"
  22. exit do
  23. else
  24. s=s+1 '注意:这一句是赋值句,要从右往左读,即每出错一次就把s加上1,然后再放回s里面,使得这个变量加1
  25. msgbox "认证出错, 请检查暗码"
  26. end if
  27. end if
  28. loop
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 7# czjt1234


      特别感谢您 你是一个分享快乐的人 为表示感谢  帮助我的人有2个 你和另外一个人  请留下QQ 每人5QB 望不要嫌弃

TOP

回复 3# pcl_test


   
    特别感谢您 你是一个分享快乐的人 为表示感谢  帮助我的人有2个 你和****1234 请留下QQ 每人5QB 望不要嫌弃

TOP

  1. strOut = ""
  2. s = 0
  3. For each i in GetObject("winmgmts:").InstancesOf("Win32_DiskDrive")
  4.     strOut = strOut & i.Signature
  5. Next
  6. m = (strOut - 3) * 7    '复杂密码
  7. Wscript.Echo "硬盘的序列号串:" & strOut
  8. Wscript.Echo "复杂密码:" & m
  9. do
  10.     a = inputbox("请输入暗码")
  11.     if a = Cstr(m) then
  12.         msgbox "认证成功"
  13.         exit do
  14.     else
  15.         if s = 1 then '设置认证次数为1
  16.             msgbox "已经达到认证上限, 认证程序关闭"
  17.             exit do
  18.         else
  19.             s = s + 1
  20.             msgbox "认证出错, 请检查暗码"
  21.         end if
  22.     end if
  23. loop
复制代码
刚才没测试,这次测试过了
1

评分人数


QQ 20147578

TOP

回复 5# czjt1234


    貌似你的最后不能调用加密的 提示密码不对

TOP

  1. strOut = ""
  2. s = 0
  3. For each i in GetObject("winmgmts:").InstancesOf("Win32_DiskDrive")
  4.     strOut = strOut & i.Signature
  5. Next
  6. m = (strOut - 3) * 7    '复杂密码
  7. Wscript.Echo "硬盘的序列号串:" & strOut
  8. Wscript.Echo "复杂密码:" & m
  9. do
  10.     a = inputbox("请输入暗码")
  11.     if a = m then
  12.         msgbox "认证成功"
  13.         exit do
  14.     else
  15.         if s = 1 then '设置认证次数为1
  16.             msgbox "已经达到认证上限, 认证程序关闭"
  17.             exit do
  18.         else
  19.             s = s + 1
  20.             msgbox "认证出错, 请检查暗码"
  21.         end if
  22.     end if
  23. loop
复制代码

QQ 20147578

TOP

14行把set去掉
set用于对象赋值

QQ 20147578

TOP

本帖最后由 pcl_test 于 2015-4-17 07:20 编辑

错误主要在以下两句
  1. Wscript.Echo strOut-strOut-strOut
复制代码
  1. set m = strOut-strOut-strOut-3*7
复制代码
如果strOut是作为字符类型,那么Wscript.Echo strOut&"-"&strOut&"-"&strOut和m = strOut&"-"&strOut&"-"&strOut&"-"&CStr(3*7)

TOP

求vbs大哥帮忙修改下 原意10元QQ币做谢谢

TOP

返回列表