【用注册表给应用程序】用注册表给应用程序加口令

更新时间:2017-09-20 来源:软件评测 点击:

【www.hzclsc.cn--软件评测】


            
             
              
               
               
             
            
            



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

//判断用户名和口令是否正确
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;

//保存用户名和口令
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;

//取消按纽事件
procedure TWszLoginForm.BitBtnCloseClick(Sender: Tobject);
begin
Close;
end;

//确定按纽事件
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

//处理第一次登录的用户名和口令
if Application.MessageBox(
"您是第一次使用本软件,请记住您的用户名和口令,以便下次登录。现在进入系统吗?",
"系统提示",
MB_OKCANCEL + MB_ICONQUESTION) = IDOK then
begin

//保存
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;

//全局变量
GB_Wsz_User := suser;
GB_Wsz_PASS := spass;
Close;
end;

//窗体的Show事件
procedure TWszLoginForm.FormShow(Sender: Tobject);
begin
if Wsz_IfFirst then
begin
Application.MessageBox(
"您是第一次使用本软件,您可以随便输入用户名和口令。",
"系统提示",
MB_OK + MB_ICONINFORMATION);
end;
end;

本文来源:http://www.hzclsc.cn/ruanjianzixun/2068.html

为您推荐

[rainway什么意思]Rainway软件下载地址 rainway串流switch软件在哪下载

您的位置:首页 → 单机游戏 → 游戏资讯 → Rainway软件下载地址 rainway串流switch软件在哪下载 Rainway软件下载地址 rainway串流switch软件在哪下载时间:20游戏资讯

2020-12-16 11:04:57  

苹果电脑安全性偏好设置_苹果电脑安全漏洞是什么 苹果电脑安全漏洞无需密码解锁解决办法

就在近日,有用户发现苹果电脑出现了一个重大的安全漏洞,不需要输入密码即可进入系统,但是很多用户都还不知道苹果电脑安全漏洞是什么,好奇的用户马上点击查看苹果电脑安全漏洞无需密码解锁解决办法来防范于未然教你一招

2020-12-10 23:05:05   电脑安全软件   电脑安全证书过期怎么办   顺丰寄电脑安全吗  

【nero】Nelo游戏配置要求高吗 Nelo推荐配置一览

Nelo游戏配置要求高吗?Nelo是一款由虚幻4打造的超快节奏的动作游戏,玩家可以使用四种武器形成各式各样的攻击方式,本文为大家带来Nelo售价和配置要求介绍,下面就一起来看看Nelo推荐配置一览吧。游戏资讯

2020-12-10 11:04:41   nero8中文破解版   nero刻录软件   nero10序列号  

抢红包神器抢最大的_抢红包怎么抢最大的 抢红包助手下载哪个好

时近年末,相信大家的“节目单”上除了与好友聚会叙旧、与客户更加频繁地应酬之外,还有一项必不可少的活动,那就是抢红包。记得木心有首现代诗中是这样写的,“从前的日色变得慢,车马、信件都很慢 ”的软件评测

2020-12-09 17:04:22   抢红包怎么能抢最大的   抢红包最大金额软件  

[wegame修复游戏在哪里]腾讯wegame怎么修复游戏 wegame平台修复游戏教程

您的位置:首页 → 资讯 → 游戏软件 → 腾讯wegame怎么修复游戏 wegame平台修复游戏教程 腾讯wegame怎么修复游戏 wegame平台修复游戏教程时间:2017 10 20 16:00游戏软件

2020-12-04 07:04:50   wegame游戏修复在哪里   wegame如何修复游戏