统一首页 软件下载 文章教程 单机游戏 手机应用 北极科技 987导航
你的位置:统一下载站 > 文章教程 > 操作系统 > 操作系统 > 运用注册表给系统应用程序加口令

运用注册表给系统应用程序加口令

来源:本站整理 更新时间:2013-04-06 收藏本页(Ctrl+D) 评论()
运用注册表给系统应用程序加口令手机扫描查看
扫描二维码

几乎每个应用系统都有相应的权限管理功能。对于大型多用户应用系统,一般是将权限设置保存在数据库中。但是对于小型的单用户应用系统和非数据库应用系统,就没有必要将权限设置保存在数据库中,但是用文件来保存既不方便又不安全,因为文件很可能被删除或毁坏。其实,灵活地利用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

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

  MB_OK + MB_ICONINFORMATION);

   edituser.setfocus ;

  exit;

  end;

   end;

   file://全局变量

   GB_Wsz_User := suser;

   GB_Wsz_PASS := spass;

   Close;

   end;

   file://窗体的Show事件

  procedure TWszLoginForm.FormShow(Sender: TObject);

   begin

  if Wsz_IfFirst then

   begin

  Application.MessageBox(

  "您是第一次使用本软件,您可以随便输入用户名和口令。",

  "系统提示",

  MB_OK + MB_ICONINFORMATION);

  end;

   end;

相关阅读

看完这篇文章有何感觉?

软件评论

表情 em_1 em_2 em_3 em_4 em_5 em_6 em_7 em_8 em_9 em_10 em_11 em_12 已有条评论,点击全部查看

(您的评论需要经过审核才能显示,请文明发言!)  

剩余字数:

点击图片更换

统一文章资讯频道声明

1、 所有来源标注为统一下载站或统一文章的内容版权均为本站所有,若您需要引用、转载,请注明来源及原文链接即可,如涉及大面积转载,请来信告知,获取授权。

2、 本站所提供的文章资讯等内容均为作者提供、网友推荐、互联网整理而来,仅供学习参考,如有侵犯您的版权,请及时联系我们,并提供原文出处等,本站将在三个工作日内修正。

3、 若您的网站或机构从本站获取的一切资源进行商业使用,除来源为本站的资料需与本站协商外,其他资源请自行联系版权所有人。

4、 未经统一下载站允许,不得盗链、盗用本站资源;不得复制或仿造本网站,不得在非统一下载站所属的服务器上建立镜像,统一下载站对其自行开发的或和他人共同开发的所有内容、技术手段和服务拥有全部知识产权,任何人不得侵害或破坏,也不得擅自使用。

关于我们 | 网站帮助 | 网站声明 | 广告合作 | 友情链接 | 站点地图 | 软件提交 | 人才招聘 | RSS | 一键转帖
中国互联网举报中心 网络违法举报中心 垃圾信息举报中心 闽公网安备 35020302000785号 广告合作广告合作

本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。

Copy 2017 3987.Com. All Rights Reserved. 闽ICP备10202158号-1