Board logo

标题: [求助]难道"论坛"没有人能解决这个问题.. [打印本页]

作者: Shinaterry     时间: 2008-3-27 13:09    标题: [求助]难道"论坛"没有人能解决这个问题..

出处:

批处理输入密码但不显示字符的代码

环境:

Microsoft Windows XP Professional Service Pack 2.0
--
Windows Registry Editor (Regedit) 5.1

目的: 锁定DOS, 密码进入(*轻保护)..

首先, 新建批处理(D:\login.bat) 内容如下:
@echo off

chcp 437>nul&graftabl 936>nul

echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com

set  /p password=请输密码:<nul

for /f "tokens=*" %%i in ('in.com') do set password=%%i

del in.com

echo.

echo The Password is:"%password%"

pause
此时, 直接双击运行login.bat, 成功实现密码输入隐藏、显示中文等等(一切正常)

但是, 一旦设置注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor].AutoRun="D:\login.bat"之后..

运行: cmd

马上挂了 (原因: 估计是因为32位程序与16位程序之间不断互相切换, 直至死机..)

莱鸟求救, 请问大虾如何解决?

不胜感激..

[ Last edited by Shinaterry on 2008-4-15 at 12:27 AM ]
作者: slore     时间: 2008-3-28 00:02
貌似直接双击 直接输出 密码是 ""
没有输入的机会?
作者: Shinaterry     时间: 2008-3-28 00:32
你双击运行后, 直接输入然后回车就可以看见了..
作者: slore     时间: 2008-3-28 00:35
我直接双击。。。直接到PAUSE了……没有输入的机会。。。
作者: Shinaterry     时间: 2008-3-28 11:30
不会吧! 怎么我这边就正常?
作者: Shinaterry     时间: 2008-3-28 22:30
@slore

请教两个问题:

1. set /p 可以接收按下"回车"前键盘输入的一系列字符, 请问有没有办法实现在不按"回车"的情况下只能接收单个字符?

2. 如何限定只能输入半角字符(A-Za-z0-9..)?
作者: slore     时间: 2008-3-28 22:41
1.
choice命令。。。XP下默认没有(好像2K有),可以从网上下载。

2.
自己对输入后的数据做个检测吧。
不满足抛出错误提示,然后 goto到输入前,重新输入……
作者: Shinaterry     时间: 2008-3-29 01:07


  Quote:
Originally posted by slore at 2008-3-28 10:41 PM:
自己对输入后的数据做个检测吧。

如何取字符的ASCII编码? (用于判断)
作者: abcd     时间: 2008-3-29 04:45
试试findstr里的简单正则吧
作者: Shinaterry     时间: 2008-3-30 16:24
请问choice命令能不能接收"回车"与"退格"?
作者: abcd     时间: 2008-3-31 13:28
建议楼主还是用汇编写一段吧,

用16h号中断的1h号输入,判断,再用10h号中断的0eh号输出。
作者: Shinaterry     时间: 2008-3-31 14:15
http://yinhaolong.blog.163.com/blog/static/482945920081246281397/
作者: Shinaterry     时间: 2008-3-31 14:16
re: abcd -> 谢谢..

[ Last edited by Shinaterry on 2008-4-3 at 11:50 AM ]
作者: Shinaterry     时间: 2008-4-3 23:49
UP
作者: Shinaterry     时间: 2008-4-4 15:07
UP 大家帮帮忙测试一下嘛..
作者: abcd     时间: 2008-4-4 15:13
难道是因为in.com路径原因??

把in.com的写上绝对路径试试??
作者: Shinaterry     时间: 2008-4-4 23:10
原本我也是这样想, 但是结果也是一样..

或者你也测试一下, 看看结果是否一样..
作者: Shinaterry     时间: 2008-4-5 18:51
UP UP UP ..
作者: Shinaterry     时间: 2008-4-13 00:28
-_-!!! 难道使用过这段代码的高手, 都没有遇到过这个问题?
作者: Shinaterry     时间: 2008-4-15 00:26
伤心一UP
作者: slore     时间: 2008-4-15 00:44


  Quote:
Originally posted by Shinaterry at 2008-4-13 00:28:
-_-!!! 难道使用过这段代码的高手, 都没有遇到过这个问题?

的确没有遇到……

根本没有必要设置密码。。。
你作判断还不是明文规定?
汗~
作者: Shinaterry     时间: 2008-4-15 02:12
判断是密文的, 已经实现, 传参调用C++程序验证..
作者: slore     时间: 2008-4-15 02:53
你既然可以用C++写那个,那么直接用C++把这个写了吧。