今天是:
设为首页 加入收藏
  首页  文章  下载  小说  幽默  IT  QQ家园  小店  FLASH  汽车  
您现在的位置: 星雨小站 >> 文章 >> 电脑技术 >> 操作系统 >> 注册表 >> 文章正文 用户登录 新用户注册
超级DIY 用注册表给应用程序加口令         ★★★★
超级DIY 用注册表给应用程序加口令
作者:未知 文章来源:不详 点击数: 更新时间:2005-9-4 18:54:05

作者: 王洪海 出处: 天极网

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


中搜索与
的相似内容
立刻搜索→

文章录入:小雨    责任编辑:小雨 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口



    推荐文章[组图]无损硬盘数据调整…
    普通文章上线[问好,打招呼] QQ表…
    普通文章拜拜[再见,晚安,下线] …
    普通文章钱[钞票,大款] QQ表情
    普通文章[组图]应知应会的5个图…
    普通文章跟我学用“记事本”
    普通文章用好Windows自带的录音…
    普通文章来测试你的网速-比比看…
    推荐文章文件夹加密过程中因误操…
    推荐文章[组图]无损硬盘数据调整…
    推荐文章能够安装多个杀毒软件吗…
    推荐文章爱情专用系列 QQ表情
    推荐文章用画图工具给图片添加文…
    推荐文章老公增加零花钱的请示报…
    推荐文章QQ搞笑表情(二) QQ表情
    推荐文章悠嘻猴 QQ表情
    为什么REG文件不能解锁…
    解锁Win XP注册表的方…
    防止IE被恶意修改的初…
    Windows系统维护必备 …
    给IE加油,IE修改全攻略
    定制新版注册表编辑器…
    Windows XP中让“控制…
    阻止对Windows注册表的…
    删除注册表垃圾后XP出…
    找了你好久:收藏夹内…
    不再费时费力 两招快速…
    巧改注册表 实现Windo…
    Windows注册表解禁的一…
    用注册表为操作系统砌…
    斩草除根 如何将注册表…

    糯米猪系列 QQ表情

    愚人节qq表情 QQ表情

    花脸猫系列 QQ表情

    uc表情系列 QQ表情
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有 Copyright© 2004-2005 星空联盟工作室 EMAIL:xingyu@xyu01.com
    给我发消息 给我发消息

    本站Alaxa全球网站排名 (点击查看)(安装Alexa工具条,查看各大网站全球排名)