login.pas
来自「物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、」· PAS 代码 · 共 304 行
PAS
304 行
unit login;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, StdCtrls, Buttons, ImgList, jpeg, ShellAPI, Db,Registry,
DBTables, Grids, DBGrids, DBCtrls, ADODB, inifiles;
type
TloginDlg = class(TForm)
Bevel3: TBevel;
Label6: TLabel;
Bevel4: TBevel;
Panel2: TPanel;
Panel3: TPanel;
Image2: TImage;
Image1: TImage;
Label4: TLabel;
Label3: TLabel;
CobUserName: TComboBox;
Label2: TLabel;
Password: TEdit;
CancelBtn: TBitBtn;
BitBtn1: TBitBtn;
procedure FormShow(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
User_CLose:integer;
Name:String;
{ Private declarations }
public
{ Public declarations }
bOK:bool;
end;
var
loginDlg: TloginDlg;
myinifile:TInifile;
implementation
uses main,data,GSPYYA06,UserInfo1,dateutils;
{$R *.DFM}
//初始化
procedure TloginDlg.FormShow(Sender: TObject);
var
s,s1,s2,s3,s4:string;
filename:string;
query1:TADOQuery;
b1,b2,b3:bool;
reg:tregistry;
i,j:integer;
d:double;
begin
filename:=ExtractFilePath(paramstr(0))+'dblink.ini';
myinifile:=Tinifile.create(filename);
s1 := myinifile.readstring('sn','v','') ;//'bbb';//服务器名
s2 := myinifile.readstring('us','v','') ;//'sa'; //SQL用户名
s3 := myinifile.readstring('lp','v','') ;//'bbb'; //密码
if (s1='') or (s2='') then CancelBtnClick(Sender)
else
begin
query1:=TADOquery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
User_Close:=0;
query1.SQL.Clear;
query1.SQL.Add('select * from 操作员 order by 编码 asc');
Query1.Open;
While not Query1.Eof do
begin
CobUsername.Items.add(trim(query1.Fieldbyname('姓名').AsString));
Query1.Next;
end;
Query1.Close;
end;
{b1:=false;b2:=false;b3:=false;
query1.SQL.Add('select * from ptemp1');
Query1.Open;
if query1.RecordCount=0 then
begin
s2:='000';
reg:=tregistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
//reg.WriteString('MSFSS',inttostr(j));
//showmessage(reg.ReadString('MSFSS'));
s2:= reg.ReadString('MSFSS111');
//s3:= reg.ReadString('MSF111');
reg.closekey;
reg.free;
if s2<>'000' then
begin
showmessage('无效的授权说明。');
Application.Terminate;
end;
//当前为试用版,请向当地代理商购买授权使用,代理商: 电话: 地址:
//当前为正式版,代理商将提供完善的售后服务。代理商: 电话: 地址:
s:=datetostr(date);
s:=copy(s,1,4)+copy(s,6,2)+copy(s,9,2);
for j:=1 to length(s) do
s[j]:=chr(ord(s[j])xor 122222255000); //255
s1:='234213sdfsdaf234!?asdf2134asfwer214124234sdfsadfsdawerqwer??!!!######asdfklq234124ksjfasdfkslkasjdf32423142312342314214asdfsadfsdfrqwerwqe2142134231423142124';
//for j:=1 to length(s1) do
//s1[j]:=chr(ord(s1[j])xor 122222255000); //255
query1.sql.Clear ;
query1.sql.Text:='insert into ptemp1(列1,列2) values(:s1,:s2)';
query1.Parameters.ParamByName('s1').Value:=trim(s1);
query1.Parameters.ParamByName('s2').Value:=trim(s);
DataModuleADO.ADOConnection1.BeginTrans;
query1.execsql;
DataModuleADO.ADOConnection1.CommitTrans;
reg:=tregistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
//reg.WriteString('MSFSS',inttostr(j));
reg.WriteString('MSFSS111',s);
//reg.WriteString('MSF111',inttostr(4515+k));
//showmessage(reg.ReadString('MSFSS'));
reg.closekey;
reg.free;
end
else
begin
s1:='234213sdfsdaf234!?asdf2134asfwer214124234sdfsadfsdawerqwer??!!!######asdfklq234124ksjfasdfkslkasjdf32423142312342314214asdfsadfsdfrqwerwqe2142134231423142124';
//for j:=1 to length(s1) do
//s1[j]:=chr(ord(s1[j])xor 122222255000); //255
i:=length(s1);
while not query1.Eof do
begin
if length(trim(query1.Fieldbyname('列1').AsString))=i then
begin
if (trim(query1.Fieldbyname('列1').AsString)=s1) then
begin
s:=trim(query1.Fieldbyname('列2').AsString);
b1:=true;
break;
end;
end;
query1.Next;
end;
reg:=tregistry.create;
reg.rootkey:=HKEY_LOCAL_MACHINE;
reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
//reg.WriteString('MSFSS',inttostr(j));
//showmessage(reg.ReadString('MSFSS'));
s2:= reg.ReadString('MSFSS111');
//s3:= reg.ReadString('MSF111');
reg.closekey;
reg.free;
if s2=s then b2:=true;
if (b1=true) and (b2=true) then
begin
for i:=1 to length(s) do
s[i]:=chr(ord(s[i]) xor 122222255000); //255
s:=copy(s,1,4)+'-'+copy(s,5,2)+'-'+copy(s,7,2);
s1:=datetostr(date);
i:=trunc(strtodatetime(s)-strtodatetime(s1));
if i>30 then
begin
showmessage('无效的授权说明。');
Application.Terminate;
end;
end
else
begin
showmessage('无效的授权说明。');
Application.Terminate;
end;
end;
end; }
end;
procedure TloginDlg.CancelBtnClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TloginDlg.BitBtn1Click(Sender: TObject);
var
Query1:TAdoQuery;
s:string;
begin
if CobUserName.Text='' then
begin
showmessage('请先输入姓名');
CobUserName.SetFocus;
exit;
end;
query1:=TADOquery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
Query1.SQL.Add('select * from 操作员 where 姓名='''+cobusername.Text+'''');
Query1.Open ;
if Query1.RecordCount > 0 then
begin
if MyMD5.AsHex(MyMD5.HashValue(password.Text))<>trim(query1.Fieldbyname('密码').AsString) then
begin
ShowMessage('['+CobUserName.Text+']的口令错误.');
Password.SetFocus;
End
Else
begin
MainForm.StatusBar1.Panels[1].Text:='用户['+CobUserName.Text+']';
//f_preview.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']';
//MainForm.User1:=CobUserName.Text;
czy:= CobUserName.Text;
User_Close:=3;
gTime:=datetimetostr(now);
s:='insert into 系统日志(操作员,登陆时间,离机时间) values(:s1,:s2,:s3)';
query1.SQL.Clear;
query1.SQL.Add(s);
query1.Parameters.ParamByName('s1').Value:=czy;
query1.Parameters.ParamByName('s2').Value:=gTime;
query1.parameters.parambyname('s3').value:=datetimetostr(now);
DataModuleADO.ADOConnection1.BeginTrans;
query1.execsql;
DataModuleADO.ADOConnection1.CommitTrans;
//mainform.StatusBar1.Panels[0].Text := '操作员:'+czy;
query1.SQL.Clear;
Query1.SQL.Add('select * from 公司信息');
Query1.Open ;
if Query1.RecordCount > 0 then
begin
st1:= trim(Query1.FieldByName('名称').AsString);
st2:= trim(Query1.FieldByName('地址').AsString);
st3:= trim(Query1.FieldByName('电话').AsString);
st4:= trim(Query1.FieldByName('传真').AsString);
//st5:= trim(Query1.FieldByName('销售单脚注1').AsString);
end;
query1.SQL.Clear;
Query1.SQL.Add('select * from ptemp1 where 列1=''代理商名称'' and 列2=''-''');
Query1.Open ;
if Query1.RecordCount > 0 then
begin
f_UserInfo1:=TF_UserInfo1.Create(self);
f_UserInfo1.showmodal;
f_UserInfo1.Free;
end;
query1.SQL.Clear;
Query1.SQL.Add('select * from ptemp1');
Query1.Open ;
while not query1.Eof do
begin
if trim(Query1.FieldByName('列1').AsString) ='代理商名称' then
sg1:= trim(Query1.FieldByName('列2').AsString);
if trim(Query1.FieldByName('列1').AsString) ='代理商电话' then
sg2:= trim(Query1.FieldByName('列2').AsString);
if trim(Query1.FieldByName('列1').AsString) ='代理商地址' then
sg3:= trim(Query1.FieldByName('列2').AsString);
query1.Next;
end;
bOK:=true;
Close;
end;
End;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?