登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>操作系统>注册表>正文
 
运用注册表给系统应用程序加口令

http://www.dbit.cn 2011/1/13 7:37:28  来源:东北IT网  编辑:叶子
 
  几乎每个应用系统都有相应的权限管理功能。对于大型多用户应用系统,一般是将权限设置保存在数据库中。但是对于小型的单用户应用系统和非数据库应用系统,就没有必要将权限设置保存在数据库中,但是用文件来保存既不方便又不安全,因为文件很可能被删除或毁坏。其实,灵活地利用Windows注册表的特点,可以很方便地为应用系统设置用户名和口令,这种方法不但编程简便,而且安全性比较高。下面举例说明,该例程在Windows98,Delphi4环境下调试通过。  

  设计流程为:先判断是否为第一次使用,如果为第一次使用,则要求设置新的用户名和口令,系统将用户名和口令保存起来;如果不是第一次使用,则要求输入用户名和口令才能登录。  

  在Delphi开发环境中,新建一个工程Project1,在Project1中增加一个窗体Form1;在Form1上增加两个按纽,一个为确定,另一个为取消;再在Form1上增加两个Text框EditUser和EditPass,分别为用户名和口令输入框。定义窗体级全局变量RegF:TRegistry。并在interface的Uses中加上Registry。

  增加函数Wsz_IfFirst,判断是否是第一次使用;增加过程Wsz_SaveUse,保存用户名和口令;增加函数Wsz_CheckUser,判断用户名和口令是否正确。然后在Form1的FormShow事件和确定按纽事件中分别调用这三个函数和过程,达到设计要求。  

  //判断是否是第一次使用

  function Wsz_IfFirst:Boolean;

  var

   sUser:string;

   sPass:string;

  begin

   result := false;

   RegF:=TRegistry.Create;

   RegF.RootKey :=HKEY_LOCAL_MACHINE;

   RegF.OpenKey("SOFTWARE\MicroSoft\whh726",TRUE);

   sUser := RegF.ReadString("user");

   sPass := RegF.ReadString("pass");

   if ((length(sUser)<=0) and (length(sPass)<=0)) then

  result := true ;

  RegF.Free;

   end;

  file://判断用户名和口令是否正确

  function Wsz_CheckUser(MyUser:string;MyPass :string):Boolean;

  var

   sUser:string;

   sPass:string;

  begin

   result:= false;

   RegF:=TRegistry.Create;

   RegF.RootKey :=HKEY_LOCAL_MACHINE;

   RegF.OpenKey("SOFTWARE\MicroSoft\whh726",TRUE);

   sUser := RegF.ReadString("user");

   sPass := RegF.ReadString("pass");

   if (sUser=MyUser) and (sPass=MyPass) then

  result := true;

  RegF.Free;

   end;

  file://保存用户名和口令

  procedure Wsz_SaveUser(MyUser:string;MyPass :string);

  begin

   RegF:=TRegistry.Create;

   RegF.RootKey :=HKEY_LOCAL_MACHINE;

   RegF.OpenKey("SOFTWARE\MicroSoft\whh726",TRUE);

   RegF.WriteString("user",MyUser);

   RegF.WriteString("pass",MyPass);

   RegF.Free;

  end;

  file://取消按纽事件

  procedure TWszLoginForm.BitBtnCloseClick(Sender: TObject);

  begin

   Close;

  end;

  file://确定按纽事件

  procedure TWszLoginForm.BitBtnYesClick(Sender: TObject);

  var

   suser:string;

   spass:string;

  begin

   suser := trim(edituser.text);

   spass := trim(editpass.text);

   if (length(suser)<=0) or (length(spass)<=0) then

   begin

  Application.MessageBox("用户名和口令都必须输入!",

    "系统提示",

   MB_OK + MB_ICONINFORMATION);

   edituser.SetFocus ;

  exit;

   end;

   if Wsz_IfFirst then

   begin

  file://处理第一次登录的用户名和口令

  if Application.MessageBox(

   "您是第一次使用本软件,请记住您的用户名和口令,

   以便下次登录。现在进入系统吗?",

   "系统提示",

   MB_OKCANCEL + MB_ICONQUESTION) = IDOK then

   begin

  file://保存

  Wsz_SaveUser(suser,spass);

   end

  else

   begin

   edituser.SetFocus ;

   exit;

   end;

  end else

   begin

  if not Wsz_CheckUser(suser,spass) then

  begin

  Application.MessageBox

   ("对不起,用户名和口令输入不正确!", "系统提示",

本新闻共2页,当前在第1页  1  2  

收藏】【打印】【进入论坛
  相关文章:

·win 注册表全解开始菜单及相关设置
·由注册表怎么防御黑客如入侵
·修改注册表实现Win 7系统自动拨号
·修改注册表让你在局域网中隐身
·用注册表恢复“碎片整理”按钮功能
·从注册表切断一切黑客入侵的路径
·非windows环境下编辑注册表的方法
·修改注册表权限加强对木马病毒防范
·让登录注册表时 保持在根目录状态
·注册表或组策略解决任务管理器问题 
·通过注册表删除多余网卡本地连接 

 
 
 
最新文章

抢先苹果,消息称英特尔芯片采用台积电
三星揭晓业内首款单条 512GB DDR5 内存
vivo 高端新机爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息称三星 Galaxy Tab S8 系列平板将放
机械革命推出 F6 轻薄本:16 英寸全面屏
英特尔 12 代 Alder Lake CPU 600 系列
雷军:向小米手机 1 首批用户每人赠送价
小米李明谈用户被踢出 MIUI 测试版:大

推荐文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感写真
宫如敏不雅照疯传 看张馨予韩一菲兽兽谁
不惧孔子抢位 阿凡达游戏影音配置推荐
2015第十七届“东北安博会”火爆招商
第十六届东北国际公共安全防范产品博览
2016年第五届中国国际商业信息化博览会
2016年第五届中国国际POS机及相关设备展
互联网电视熟了吗 2013最火电视深解析
桑达获邀出席2015中国(广州)国际POS机
宝获利报名参加“2015年度中国POS机行业
八卦图解 More>>
叛逆嫩模性感写真 宫如敏不雅照疯传 看张馨予韩一菲
周伟童魔鬼身材日本性感写真图  联想V360笔记本模特写真