最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用注冊表給應(yīng)用程序加口令

 更新時間:2006年10月23日 00:00:00   作者:  

幾乎每個應(yīng)用系統(tǒng)都有相應(yīng)的權(quán)限管理功能。對于大型多用戶應(yīng)用系統(tǒng),一般是將權(quán)限設(shè)置保存在數(shù)據(jù)庫中。但是對于小型的單用戶應(yīng)用系統(tǒng)和非數(shù)據(jù)庫應(yīng)用系統(tǒng),就沒有必要將權(quán)限設(shè)置保存在數(shù)據(jù)庫中,但是用文件來保存既不方便又不安全,因?yàn)槲募芸赡鼙粍h除或毀壞。其實(shí),靈活地利用Windows注冊表的特點(diǎn),可以很方便地為應(yīng)用系統(tǒng)設(shè)置用戶名和口令,這種方法不但編程簡便,而且安全性比較高。下面舉例說明,該例程在Windows98,Delphi4環(huán)境下調(diào)試通過。

設(shè)計(jì)流程為:先判斷是否為第一次使用,如果為第一次使用,則要求設(shè)置新的用戶名和口令,系統(tǒng)將用戶名和口令保存起來;如果不是第一次使用,則要求輸入用戶名和口令才能登錄。

在Delphi開發(fā)環(huán)境中,新建一個工程Project1,在Project1中增加一個窗體Form1;在Form1上增加兩個按紐,一個為確定,另一個為取消;再在Form1上增加兩個Text框EditUser和EditPass,分別為用戶名和口令輸入框。定義窗體級全局變量RegF:Tregistry。并在interface的Uses中加上Registry。

增加函數(shù)Wsz_IfFirst,判斷是否是第一次使用;增加過程Wsz_SaveUse,保存用戶名和口令;增加函數(shù)Wsz_CheckUser,判斷用戶名和口令是否正確。然后在Form1的FormShow事件和確定按紐事件中分別調(diào)用這三個函數(shù)和過程,達(dá)到設(shè)計(jì)要求。

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

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("用戶名和口令都必須輸入!", "系統(tǒng)提示",
MB_OK + MB_ICONINFORMATION);
edituser.SetFocus ;
exit;
end;
if Wsz_IfFirst then
begin

//處理第一次登錄的用戶名和口令
if Application.MessageBox(
"您是第一次使用本軟件,請記住您的用戶名和口令,以便下次登錄?,F(xiàn)在進(jìn)入系統(tǒng)嗎?",
"系統(tǒng)提示",
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("對不起,用戶名和口令輸入不正確!",
"系統(tǒng)提示",
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(
"您是第一次使用本軟件,您可以隨便輸入用戶名和口令。",
"系統(tǒng)提示",
MB_OK + MB_ICONINFORMATION);
end;
end;

相關(guān)文章

最新評論

盱眙县| 淳安县| 六枝特区| 璧山县| 麻城市| 黄梅县| 兴业县| 辽源市| 安庆市| 大悟县| 曲阜市| 乌拉特后旗| 青铜峡市| 昌都县| 普兰店市| 洛扎县| 上蔡县| 鄂托克前旗| 凤凰县| 古丈县| 涡阳县| 长沙县| 安庆市| 尉犁县| 宾川县| 射洪县| 临湘市| 沂水县| 乌什县| 达州市| 卢氏县| 鄯善县| 东至县| 象州县| 青龙| 襄樊市| 泰来县| 理塘县| 疏勒县| 德惠市| 泰来县|