procedure Tmain.FormCreate(Sender: TObject); var Reg: TRegistry; Config:TextFile; S,R,bc:string; F: TextFile; strTMP,FileName: String; i: Integer; begin Mond_Fun:=1;
if DBServer.Connected then DBServer.Close; //取得配置信息 FileName:= ExtractFilePath(Application.ExeName) + 'config.dat'; if not FileExists(FileName) then begin ShowMessage('系统错误:系统配置文件不存在,无法取得数据库信息!!!'); Application.Terminate; end; AssignFile(F,FileName); Reset(F); if Eof(F)then begin ShowMessage('系统错误:系统配置信息不存在,无法取得数据库信息!!!'); CloseFile(F); Application.Terminate; end; ReadLN(F,strTMP); CloseFile(F); //读取注册表基本信息 //client_Name 客户端口名称 //sqls_name 数据库服务器名称 //user_name 数据库服务器用户名称 ///password 数据库服务器密码 m_nTimer1:=0; m_nTimer2:=0; IWaitSecond := 1200000;
Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; //打开注册表 //如果无法打开注册表则立即报告错误信息 if Reg.OpenKey('\Software\Ontop', True) then begin Client_Name:=Reg.ReadString('Client_Name'); SQLS_Name:=Reg.ReadString('SQLS_Name'); user_name:=Reg.ReadString('user_name'); PassWord:=Reg.ReadString('PassWord'); IWaitSecond := StrToInt(Reg.ReadString('WaitSecond')); end else begin ShowMessage('无法获取系统注册信息,请重新安装!'); //关闭注册表 Reg.CloseKey; Reg.Free; inherited; //如果无法读取注册表基本信息则立即终止程序 Application.Destroy; end; finally end; //关闭注册表 Reg.CloseKey; Reg.Free; inherited; //本程序的数据库连接为动态建立 //建立数据库基本连接 try // DBServer.ConnectionString:='Provider=SQLOLEDB.1;Password='''+PassWord+''';Persist Security Info=True;User ID='''+user_name+''';Initial Catalog=pike_wgyc;Data Source='''+SQLS_Name+''''; DBServer.ConnectionString:=strTMP; DBServer.Connected :=TRUE; DBTemp.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+ExtractFilePath(Application.ExeName)+'\local.mdb;Persist Security Info=False'; DBTemp.Connected :=TRUE; except ShowMessage('无法获取系统信息'); //如果无法获取系统信息则立即终止程序 Application.Destroy; end; //对系统事件句柄(hHandle)进行初始化 hHandle:=CreateEvent(nil,TRUE,FALSE,'test'); ResetEvent(hHandle); //获取系统基本信息 GetSysData; GetATerminalMsg; GetSysTerminalMsg; GetSysAmmeterMsg; GetCompGroup; // GetNeedGroup; // deleteData; //与前置机建立连接 if (Lantrans1.CreateSocket(m_IP,m_Port[0],m_Port[1]) = 0) then begin ShowMessage('通讯端口被占用,程序退出!'); main.Dial_Modem; Dispose(mQuery_Parm); Dispose(m_Result); Main.Close; Application.Terminate; end; new(mQuery_Parm); new(m_Result); ThreadActive:=False; AssignFile(Config,'XC_Config.ini'); if not FileExists('XC_Config.ini') then begin ReWrite(Config); WriteLn(Config,'Sys_Execute=2$Sys_bc=2'); WriteLn(Config,'//如果Sys_Execute=1启动程序就自动执行巡测,如果Sys_Execute=2启动程序不自动执行巡测。'); end else ReSet(Config); try ReadLn(Config,S); finally CloseFile(Config); end;// IBc := 1; R:=copy(S,13,1); bc := copy(S,22,1); // showmessage(R); if R='1' then Check.Checked:=true else Check.Checked:=false; // if bc='1' then CheckBox1.Checked:=true else CheckBox1.Checked:=false; if R='1' then BitBtn1Click(sender); // if bc='1' then IBc := 27; DateTimePicker1.Date := Now-30; DateTimePicker2.Date := Now; ModemState:=0;//初始化有线或无线的Modem连接。 NewTel:='0'; OldTel:='0'; IDialNumber := 2; // IDialException := 20; //拨号失败 IDialException := 13; //拨号失败 end;
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,registry;///////////////////要这个单元文件type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject); var str : TStrings; Reg : TRegistry; begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs' ,false) then begin str:=TStringList.Create; reg.GetValueNames(str); ListBox1.Items.AddStrings(str); str.Free; end; Reg.Free; end;end.
use registry; .... var reg:Tregistry; ..... reg:=Tregistry.create; try reg.rootkey:=hkey_local_machine; if reg.openkey('\software\emperor\epys',false) then begin is_servername:=reg.readstring('servername'); end else begin reg.createkey('\software\emperor\epys'); reg.openkey('\software\emperor\epys',true); reg.writestring('servername','local'); reg.writestring('type','tcp'); reg.writestring('port','1433'); reg.writestring('ins',''); is_servername:=reg.readstring('local'); end; finally reg.free; end;
var
Reg: TRegistry;
Config:TextFile;
S,R,bc:string;
F: TextFile;
strTMP,FileName: String;
i: Integer;
begin
Mond_Fun:=1;
if DBServer.Connected then DBServer.Close;
//取得配置信息
FileName:= ExtractFilePath(Application.ExeName) + 'config.dat';
if not FileExists(FileName) then begin
ShowMessage('系统错误:系统配置文件不存在,无法取得数据库信息!!!');
Application.Terminate;
end; AssignFile(F,FileName);
Reset(F);
if Eof(F)then begin
ShowMessage('系统错误:系统配置信息不存在,无法取得数据库信息!!!');
CloseFile(F);
Application.Terminate;
end;
ReadLN(F,strTMP);
CloseFile(F);
//读取注册表基本信息
//client_Name 客户端口名称
//sqls_name 数据库服务器名称
//user_name 数据库服务器用户名称
///password 数据库服务器密码
m_nTimer1:=0;
m_nTimer2:=0; IWaitSecond := 1200000;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER; //打开注册表
//如果无法打开注册表则立即报告错误信息
if Reg.OpenKey('\Software\Ontop', True) then
begin
Client_Name:=Reg.ReadString('Client_Name');
SQLS_Name:=Reg.ReadString('SQLS_Name');
user_name:=Reg.ReadString('user_name');
PassWord:=Reg.ReadString('PassWord');
IWaitSecond := StrToInt(Reg.ReadString('WaitSecond'));
end
else
begin
ShowMessage('无法获取系统注册信息,请重新安装!');
//关闭注册表
Reg.CloseKey;
Reg.Free;
inherited;
//如果无法读取注册表基本信息则立即终止程序
Application.Destroy;
end;
finally end; //关闭注册表
Reg.CloseKey;
Reg.Free;
inherited; //本程序的数据库连接为动态建立
//建立数据库基本连接 try
// DBServer.ConnectionString:='Provider=SQLOLEDB.1;Password='''+PassWord+''';Persist Security Info=True;User ID='''+user_name+''';Initial Catalog=pike_wgyc;Data Source='''+SQLS_Name+'''';
DBServer.ConnectionString:=strTMP;
DBServer.Connected :=TRUE;
DBTemp.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='+ExtractFilePath(Application.ExeName)+'\local.mdb;Persist Security Info=False';
DBTemp.Connected :=TRUE;
except
ShowMessage('无法获取系统信息');
//如果无法获取系统信息则立即终止程序
Application.Destroy;
end; //对系统事件句柄(hHandle)进行初始化
hHandle:=CreateEvent(nil,TRUE,FALSE,'test');
ResetEvent(hHandle); //获取系统基本信息
GetSysData;
GetATerminalMsg;
GetSysTerminalMsg;
GetSysAmmeterMsg; GetCompGroup; //
GetNeedGroup; // deleteData; //与前置机建立连接
if (Lantrans1.CreateSocket(m_IP,m_Port[0],m_Port[1]) = 0) then
begin
ShowMessage('通讯端口被占用,程序退出!'); main.Dial_Modem;
Dispose(mQuery_Parm);
Dispose(m_Result);
Main.Close;
Application.Terminate;
end;
new(mQuery_Parm);
new(m_Result); ThreadActive:=False;
AssignFile(Config,'XC_Config.ini');
if not FileExists('XC_Config.ini') then
begin
ReWrite(Config);
WriteLn(Config,'Sys_Execute=2$Sys_bc=2');
WriteLn(Config,'//如果Sys_Execute=1启动程序就自动执行巡测,如果Sys_Execute=2启动程序不自动执行巡测。');
end else
ReSet(Config);
try
ReadLn(Config,S);
finally
CloseFile(Config);
end;// IBc := 1;
R:=copy(S,13,1);
bc := copy(S,22,1);
// showmessage(R); if R='1' then Check.Checked:=true else Check.Checked:=false;
// if bc='1' then CheckBox1.Checked:=true else CheckBox1.Checked:=false; if R='1' then BitBtn1Click(sender);
// if bc='1' then IBc := 27; DateTimePicker1.Date := Now-30;
DateTimePicker2.Date := Now;
ModemState:=0;//初始化有线或无线的Modem连接。
NewTel:='0';
OldTel:='0';
IDialNumber := 2;
// IDialException := 20; //拨号失败
IDialException := 13; //拨号失败
end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,registry;///////////////////要这个单元文件type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
str : TStrings;
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs' ,false) then
begin
str:=TStringList.Create;
reg.GetValueNames(str);
ListBox1.Items.AddStrings(str);
str.Free;
end;
Reg.Free;
end;end.
registry;
....
var
reg:Tregistry;
.....
reg:=Tregistry.create;
try
reg.rootkey:=hkey_local_machine;
if reg.openkey('\software\emperor\epys',false) then
begin
is_servername:=reg.readstring('servername');
end
else
begin
reg.createkey('\software\emperor\epys');
reg.openkey('\software\emperor\epys',true);
reg.writestring('servername','local');
reg.writestring('type','tcp');
reg.writestring('port','1433');
reg.writestring('ins','');
is_servername:=reg.readstring('local');
end;
finally
reg.free;
end;