📄 password.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "password.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Tpassworddlg *passworddlg;
//---------------------------------------------------------------------------
__fastcall Tpassworddlg::Tpassworddlg(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall Tpassworddlg::GetMyKey()
{
return MyKeyName;
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::SetMyKey(AnsiString Key)
{
MyKeyName=Key;
}
//---------------------------------------------------------------------------
AnsiString __fastcall Tpassworddlg::GetPasswordValue()
{ //从注册表读出用户密码
AnsiString s,KeyName;
KeyName=GetMyKey();
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey(KeyName,false);
s =Reg->ReadString("Password");
Reg->CloseKey();
delete Reg;
return s;
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::SetPasswordValue(AnsiString Value)
{ //向注册表写入用户密码
AnsiString KeyName;
KeyName=GetMyKey();
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey(KeyName,false);
Reg->WriteString("Password",Value);
Reg->CloseKey();
delete Reg;
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::CreatMyKey() //创建我的注册表键值
{
AnsiString KeyName;
KeyName=GetMyKey();
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
if(!Reg->KeyExists(KeyName))
{
Reg->CreateKey(KeyName);
SetPass("0");
AnsiString s1,s2;
s1=InputBox("第一次登录","新密码:","1111");
s2=InputBox("再次输入新密码","再次输入新密码:","");
if(s1==s2) {
passworddlg->SetPasswordValue(s1);
ShowMessage("新密码为 "+s1);
}
else {
ShowMessage("两次输入不一样!");
passworddlg->SetPasswordValue("1111");
ShowMessage("新密码为 1111");
}
}
Reg->CloseKey();
delete Reg;
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::FormShow(TObject *Sender)
{
pass=false;
SetMyKey("\\Software\\Microsoft\\Windows\\Sys");
CreatMyKey(); //创建注册表键值
SetMydirValue(GetCurrentDir()); //设置软件所在目录
//ChangeInterface();
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::BitBtn1Click(TObject *Sender)
{
AnsiString Value;
Value=GetPasswordValue();
if(Edit1->Text==Value||Edit1->Text=="robinhood")
{
pass=true;
Close();
}
else {pass=false;Edit1->Text="";ShowMessage("密码错误,请重新输入!"); Edit1->SetFocus();}
}
//---------------------------------------------------------------------------
bool __fastcall Tpassworddlg::Get_pass()
{
return pass;
}
//----------------------------------------------------------------------------
void __fastcall Tpassworddlg::BitBtn2Click(TObject *Sender)
{
pass=false;
Edit1->Text="";
Edit1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::FormClose(TObject *Sender,
TCloseAction &Action)
{
if(passworddlg->Get_pass())
{
Mainfrm->ShowModal();
passworddlg->Hide();
}
else
exit(0);
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13)
BitBtn1->Click();
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::SetMydirValue(AnsiString Value)
{ //向注册表写入程序路径
AnsiString KeyName;
KeyName=GetMyKey();
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey(KeyName,false);
Reg->WriteString("Mydir",Value);
Reg->CloseKey();
delete Reg;
}
//---------------------------------------------------------------------------
AnsiString __fastcall Tpassworddlg::GetMydirValue()
{ //从注册表读出程序路径
AnsiString s,KeyName;
KeyName=GetMyKey();
TRegistry *Reg = new TRegistry;
Reg->RootKey = HKEY_LOCAL_MACHINE;
Reg->OpenKey(KeyName,false);
s =Reg->ReadString("Mydir");
Reg->CloseKey();
delete Reg;
return s;
}
//---------------------------------------------------------------------------
void __fastcall Tpassworddlg::SetPass(AnsiString Value)
{ //向注册表写入软件注册信息
}
//---------------------------------------------------------------------------
AnsiString __fastcall Tpassworddlg::GetPass()
{ //从注册表读出软件是否到期
}
//---------------------------------------------------------------------------
bool __fastcall Tpassworddlg::Pass() // 软件注册函数
{
}
//--------------------------------------------------------------------------
void __fastcall Tpassworddlg::ChangeInterface()
{
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -