设计用户表:
BH XM PWD
001 张三 1234
_________________
在你的主登录表单中的INIT事件里查找出编号为001的记录,将密码代给变量.
当用户输入密码后与你从表里获取的密码相比较,相同则通过,不同设置次数,
次数到第N次时,如果密码不同,则锁定键盘或者退出程序,最好写个函数将明
码改换为加密的密码(密码=加密程序(用户输入的密码)),
---------------------------
很久以前写的一个,有部分程序如下,你参考一下,我删除了一些不必要的
pswd=pd.用户密码 &&将用户表密码给PSWD
PWD=THIS.PARENT.TEXT1.VALUE &&将客户输入的密码给PWD
if val(pswd)=PASSGH(pwd) &&PASSGH()是将客户输入的密码改换成数据库中保存的密码
xzrq=dtoc(date()) &&求日期
xzsj=time() &&求时间
repl pd.进入日期 with xzrq &&将用户进入日期写入日志
repl pd.进入时间 with xzsj &&将用户进入时间写入日志
sele pdbz
js_bz=pdbz.js &&JS_BZ为版本是否注册变量
IF JS_BZ<>"1"
repL pdbz.js with js_bz+1 &&如果没注册则使用次数加一
ENDI
sele pd
tjmm=0 &&密码输入错误时的计算次数
DO XYMENU.MPR &&启动菜单
DO CASE
CASE DJDHBM=1 &&判断用户级别,为1:一级用户,2:二级用户,3,三级用户
SET SKIP OF MENU _MSYSMENU .F.
CASE DJDHBM=2
SET SKIP OF BAR 6 OF B1 .T.
SET SKIP OF BAR 1 OF C1 .T.
SET SKIP OF BAR 5 OF C1 .T.
SET SKIP OF BAR 3 OF D1 .T.
SET SKIP OF BAR 4 OF D1 .T.
SET SKIP OF BAR 6 OF D1 .T.
CASE DJDHBM=3
SET SKIP OF BAR 3 OF D1 .T.
SET SKIP OF BAR 4 OF D1 .T.
SET SKIP OF BAR 6 OF D1 .T.
SET SKIP OF BAR 4 OF B1 .T.
SET SKIP OF BAR 6 OF B1 .T.
SET SKIP OF BAR 4 OF A1 .T.
SET SKIP OF BAR 1 OF C1 .T.
SET SKIP OF BAR 2 OF C1 .T.
SET SKIP OF BAR 5 OF C1 .T.
ENDC
RELEASE THISFORM
Else
do case
case tjmm=1
messagebox("对不起,密码错误,你还有 2 次机会!",0+16,"提示窗口")
thisform.text4.value=""
thisform.text4.setfocus()
retu
case tjmm=2
messagebox("对不起,密码错误,你还有 1 次机会!",0+16,"提示窗口")
thisform.text4.value=""
thisform.text4.setfocus()
retu
case tjmm=3
messagebox("对不起,密码错误,你无权进入系统!",0+16,"提示窗口")
do quita &&QUITA 是写的一个PRG程序,用于释放变量和关闭数据库
clea event
endc
endi