全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1121
推到 Plurk!
推到 Facebook!

利用Dll實現通用密碼驗證框

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-28 04:58:19 IP:61.221.xxx.xxx 未訂閱
此為轉貼資料 利用Dll實現通用密碼驗證框 ---- 在我們編制Delphi應用程式,常常需要提供一個密碼驗證框,對應用程式的使用者進行身份核對。如果能有一個通用的密碼驗證框,便能夠?我們的工作節約不少的時間,更能使我們編制的程式小而快。以下的程式?你提供了這樣的一個DLL文件。 //檔案名?CheckPasswordForm.dpr; 編譯此文件生成CheckPasswordForm.dll library CheckPasswordForm; uses XcqCheck in 'XcqCheck.pas' {XcqForm}; exports CheckPassword name 'CheckPassword';//dll入口 begin end. //檔案名?XcqCheck.pas unit XcqCheck; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, Menus; type TXcqForm = class(TForm) XcqEdit: TMaskEdit;//密碼輸入框 OkBtn: TButton; procedure OkBtnClick(Sender: TObject); end; var XcqForm: TXcqForm; Check: Boolean;//驗證輸入密碼的正確性 function CheckPassword: Boolean;export; //本dll文件的關鍵實現 implementation {$R *.DFM} procedure TXcqForm.OkBtnClick(Sender: TObject); begin if XcqEdit.Text = 'xcq' then Check := True; Close; end; function CheckPassword;export; begin Check := False; XcqForm := TXcqForm.Create(Application); //創建密碼輸入框 XcqForm.ShowModal;//顯示密碼輸入框; 注意:不能用XcqForm.Show! Result := Check;//返回給調用本dll的應用程式判斷 XcqForm.Free;//釋放本dll文件所占資源 end; end. ---- 在調用以上dll中CheckPassword函數的應用程式中只需加入以下語句在implementation 後,function CheckPassword: Boolean; external 'CheckPasswordForm.dll' name 'CheckPassword';在需要進行密碼驗證的地方加入下面的條件語句就完全實現了密碼驗證的功能。 if CheckPassword then begin ...//如XcqQuery.Open; end; ---- 上面的程式只是一個簡單的密碼驗證框,我們可以將密碼以寫入註冊表或文件的方式保存,動態修改,更可以利用算術演算法對密碼進行簡單的加密等,使要保密的資料更安全。 ---- 其實,上文中如何在dll中實現窗口讓我走了不少彎路,我覺得此法對大家更有意義,這是避免程式龐大的一種有效方法,不妨試試。 ---- 以上程式在Windows98/Delphi3下編譯通過。歡迎大家批評指正
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-29 1:39:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!