应用程序密码(100分)

  • 主题发起人 主题发起人 song2
  • 开始时间 开始时间
S

song2

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
高价求授:在自己的应用程序启动时如何先跳出一个对话框,要求输入密码后
应用程序才启动.急!!!
 
在工程文件中的application的createform阶段先加入一口令form,使
application.run带条件执行即可。
...
if Form_ComParePassword.ShowModal=mrOK then

Application.run;
//Form_ComParePassword为口令校验窗口

 
menxin你这100分可真容易。哈哈
还有一种更容易的方法,在主FORM的ONCREATE过程中加入
If InputBox('用户验证','输入口令','') = 'MyPassWord' then
Close;
岂不美哉?不过它不能将口令字显示成'*'号,还能区别大小写。
如果不愿区别大小写,可以
If AnsiUpperCase(InputBox('用户验证','输入口令','')) = 'MYPASSWORD'
then
Close;
(上述代码未经验证,但理论上应该可行。)
Good Luck!
 
www.csdn.net 有一篇文章,讲 DELPHI 中如何实现加密的。
我翻译成中文了(烂)自己去看
 
各位能不能写清楚一点,例如按3h的试了一下,在对话框不论输入什么,或是点cancle,
都进入mainform,如何???,
 
menxin我刚学delphi,到底如何在application的createform阶段先加入口令form
能句体点吗??thank you!!
 
song2,你的每个project不是有一个和project同名的unit?
打开他,然后.....看我的例子把
program Result;
uses
Forms,
Dialogs,
ReaultMain in 'ReaultMain.pas' {ResultForm},
dataModual in 'dataModual.pas' {DM: TDataModule},
login in 'login.pas' {OKBottomDlg},
progress in 'progress.pas' {frmProgress};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TResultForm, ResultForm);
Application.CreateForm(TOKBottomDlg, OKBottomDlg);
Application.CreateForm(TDM, DM);
Application.CreateForm(TfrmProgress, frmProgress);
if OKBottomDlg.showModalParam=1 then
begin
if OKBottomDlg.Group='' then
begin
showmessage('您输入了错误的口令或用户名!');
Application.Terminate;
end
else
begin
.........
end;
end
else
begin
Application.Terminate;
end;
Application.Run;
end.
 
yifeng ,你是直接从自己的程序里面抄出来的吧?
 

呵呵,以前的一个程序,呵呵
 
3h 的做法可以,只是不能用 close,而是要用 Application.Terminate 或者 halt.
 
还是版主厉害。
还有我那个过程中不能用等号,要用不等于号(<>),
才不会出现您所说的那样Cancel也行的现象。
To yysun:
如果将过程放在Form.OnShow过程中用Close过程应该没问题吧?
 
// In your project file you can write like the following
program DelphiDelphi;
uses
Windows,
Forms,
Main in 'Main.pas' {MainFrm},
Login in 'Login.pas' {LoginFrm},
Cover in 'Cover.pas' {CoverFrm};
{$R *.RES}
begin
Application.Initialize;
Application.Title := 'Application Title';
LoginFrm:=TLoginFrm.Create(Application);
LoginFrm.ShowModal;
with LoginFrmdo
if ModalResult=1 then
//1 for OK button
begin
if not isValidPassword(username,password) then
//isValidPassword is a function in LoginForm;
begin
Application.MessageBox('Invalid password!',
'Error',
mb_IconHand);
Free;
Exit;
end;
end
else
//Abort Application
begin
Free;
Exit;
end;
LoginFrm.Free;
CoverFrm:=TCoverFrm.Create(Application);
CoverFrm.Show;
CoverFrm.Update;
Application.CreateForm(TMainFrm, MainFrm);
CoverFrm.Free;
Application.Run;
end.
 
这个问题太简单,呵呵
 
建立一个口令窗口,有ok和cancel按钮,ok按钮modalresult设为mrok
cancel的modalresult设为mrcancel;如menxin的方法:在建立窗口后面加入
if Form_ComParePassword.ShowModal=mrOK then
Application.run;
按动ok则关闭窗口,modalresult:=mrok,条件为true,则执行application.run
反之modalresult:=mrcancel,条件为false,不执行,你明白了吗?
 
利用Delphi或Forpro进行的密码技术都是防君子不防小人的方法,因为你的密钥
是在程序中,并作为判断的条件,因而防御能力比较差,从启动应用程序来询问口令
的方法不可取,是否能用其它的方法来加密,你可以考虑一下!?
另外,你用的这种方法已是昔日的黄花了!
 
比较保险的方法可以是,用一个小程序负责登录,登录正确后再用
CreateProcess启动主程序。
 
嘿嘿!看到大家的讨论,我就想起了自己刚开始用delphi时规规矩矩。
不敢越雷池一步, 其实,
如果大家有Windows 下C的编程经验的话,就象用VC++,BC++一样用delphi好了!
 
回答的人可真多啊,有答案了,该结束了
 
song2:你的程序启动了吗?
>menxin你这100分可真容易。哈哈
3h:你还觉得容易吗?
这问题我早就忘记了,没想到还不结束,大家继续灌,我能得10分就行了。:)
 
后退
顶部