主题:请def进来,看看!
ningboren
[专家分:0] 发布于 2005-07-19 11:45:00
以下的是你在http://qbdos.51.net修改的备份CMOS代码:
SUB C.ButtonClick (NWin, Inx)
Sel = NWin * 100 + Inx
SELECT CASE Sel
CASE 1:
FF = FREEFILE
OPEN "CMOS.DAT" FOR RANDOM AS #FF LEN=1
FIELD FF,1 AS A$
FOR i%=1 TO 128
OUT &H70, i%-1
a%=INP(&H71)
LSET A$=CHR$(A%)
PUT #FF,I
NEXT i%
CLOSE #FF
MsgBox "O","提示","COMS 备份成功!"
END IF
CASE 2:
FF = FREEFILE
OPEN "COMS.DAT" FOR RANDOM AS #FF LEN=1
FIELD FF,1 AS A$
FOR i%=1 TO 128
OUT &H70, i%-1
GET #FF,I%
b%=ASC(a$)
OUT &H71,b%
NEXT i%
CLOSE #FF
MsgBox "O","提示","COMS 还原成功!"
END SELECT
-----------------------------------------------------------
我经过试用,还原CMOS为什么成了清除CMOS了?
我先用以上代码编译后先备份CMOS,然后在恢复CMOS,重起电脑,
CMOS就成了主板出厂设置,我自己设置的全部复原了!
是不是这段代码有问题还是我自己的问题?
回复列表 (共9个回复)
沙发
def [专家分:3380] 发布于 2005-07-19 14:29:00
'我只好把我的交上了;
'我的CMOS工具[em1];
'含有不破坏日期时间的破解CMOS密码和还原方法[em11]。
'================================
DIM cmd AS STRING * 101
DIM PARAS(10) AS STRING
DIM temp AS STRING * 1
cmd = COMMAND$
offset% = VARPTR(cmd)
segment% = VARSEG(cmd)
DEF SEG = segment%
n = 0
FOR x% = 0 TO 100
temp = CHR$(PEEK(offset% + x%))
IF temp <> " " THEN
PARAS(n) = PARAS(n) + temp
ELSE
IF CHR$(PEEK(offset% + x% + 1)) <> " " THEN
n = n + 1
END IF
END IF
NEXT x%
FOR PARAS.A = 2 TO 10
IF PARAS(PARAS.A) <> "" THEN
PRINT "Too many paraments"
END
END IF
NEXT PARAS.A
SELECT CASE PARAS(0)
CASE "/B"
ON ERROR GOTO BAKERR
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
FIELD 1, 1 AS A$
FOR I = 1 TO 128
OUT 112, I - 1
B = INP(113)
LSET A$ = CHR$(B)
PUT 1, I
NEXT
CLOSE #1
PRINT "Backup CMOS to "; PARAS(1); " OK!"
PRINT
END
BAKERR:
PRINT "Backup CMOS to "; PARAS(0); " Error!"
PRINT
IF FREEFILE <> 1 THEN CLOSE #1
END
RESUME NEXT
CASE "/R"
ON ERROR GOTO RESERR
OPEN PARAS(1) FOR RANDOM AS #1 LEN = 1
FIELD 1, 1 AS A$
FOR I = 17 TO 128
GET 1, I
OUT 112, I - 1
B = INP(113)
OUT 113, B
NEXT
CLOSE #1
PRINT "Restore CMOS from "; PARAS(1); " OK!"
PRINT
END
RESERR:
PRINT "Restore CMOS from "; PARAS(0); " Error!"
PRINT
IF FREEFILE <> 1 THEN CLOSE #1
END
RESUME NEXT
CASE "/C"
OUT &H70,&H11
OUT &H71,&H14
CASE ELSE
PRINT "CMOS /B filename Backup your CMOS"
PRINT "CMOS /R filename Restore your CMOS"
PRINT "CMOS /C Clean CMOS Password"
PRINT
PRINT "Copyright Programfan.Def 2005"
PRINT " All Rights Reserved"
PRINT
END SELECT
板凳
ningboren [专家分:0] 发布于 2005-07-20 01:39:00
备份和还原好象不起作用哦!
3 楼
def [专家分:3380] 发布于 2005-07-23 02:17:00
我觉得起
不知道你是悲愤后立即还原/是用Wengier的MS-DOS 7.10
4 楼
ningboren [专家分:0] 发布于 2005-07-23 23:04:00
我又试了几遍,还是不起作用啊!
我先在DOS下键入: CMOS.EXE /R CMOS.DAT (备份)
再重起计算机,进入CMOS,把系统时间2005年改为2006年,保存,重起计算机
进入DOS
键入: CMOS.EXE /R CMOS.DAT (恢复)
重起计算机,结果系统时间还是2006年,没被还原到2005年,说明不起作用啊!
5 楼
def [专家分:3380] 发布于 2005-07-24 10:06:00
因为他没有破坏日期时间,这是方便用户的!
不然你把其他设置改了旧行。
你没看见上面的提示啊????????????????
6 楼
ningboren [专家分:0] 发布于 2005-07-25 13:21:00
其他设置也一样啊,我改了启动顺序,把原先的CDROM ,HDDD ,A,改为:HDD,CDROM,A
结果恢复以后还是没恢复到第一个设置,也不起作用啊.
7 楼
woshihanjin [专家分:2510] 发布于 2005-07-25 22:14:00
NT核心的系统(NT/2000/XP/2003)是不可以用这种方法改写CMOS的,如果装的是98应该有用
8 楼
ningboren [专家分:0] 发布于 2005-07-25 23:02:00
可是我是在DOS7.1下的啊.
9 楼
def [专家分:3380] 发布于 2005-07-27 00:01:00
我先视视
我来回复