📄 fwxxglxt.dpr
字号:
program fwxxglxt;
uses
Forms,
Windows,
Messages,
Registry,
SysUtils,
Dialogs,
khhfb in 'khhfb.pas' {frmkhhfb},
bmmlgl in 'bmmlgl.pas' {bmmlform},
Desktop in 'Desktop.pas' {desktopform},
mainform in 'mainform.pas' {SysForm},
dhsl in 'dhsl.pas' {frmdhsl},
fwdjbdd in 'fwdjbdd.pas' {frmfwdjbdd},
khzlxx in 'khzlxx.pas' {frmkhzl},
login in 'login.pas' {loginform},
scpgd in 'scpgd.pas' {frmscpgd},
startface in 'startface.pas' {Splashform},
sydwxx in 'sydwxx.pas' {sydxxform},
xtcssz in 'xtcssz.pas' {frmxtcssz},
ygdagl in 'ygdagl.pas' {frmygdagl},
yhzczx in 'yhzczx.pas' {frmyhzczx},
yhgnqxsz in 'yhgnqxsz.pas' {frmyhgnsz},
qjd in 'qjd.pas' {frmqjd},
fwrbb in 'fwrbb.pas' {frmfwrbb},
about in 'about.pas' {frmabout},
ghczy in 'ghczy.pas' {frmghczy},
ghkl in 'ghkl.pas' {frmghkl},
ghxtsj in 'ghxtsj.pas' {frmghxtrq},
dqmlgl in 'dqmlgl.pas' {frmdqmlgl},
khzlbb in 'khzlbb.pas' {khzlReport: TQuickRep},
bmmlprint in 'bmmlprint.pas' {frmbmmlprint: TQuickRep},
dqmlreport in 'dqmlreport.pas' {frmdqmlreport: TQuickRep},
khzlbj in 'khzlbj.pas' {frmkhzlbj},
PubProc in 'PubProc.pas' {PublicProc: TDataModule},
khgjxxbj in 'khgjxxbj.pas' {frmkhgjxxbj},
bmmlcx in 'bmmlcx.pas' {frmbmmlcx},
ygbmdd in 'ygbmdd.pas' {frmygbmdd},
dqcx in 'dqcx.pas' {frmdqcx},
fwlxml in 'fwlxml.pas' {frmfwlxml},
fwdjb in 'fwdjb.pas' {frmfwdjb},
khzlcx in 'khzlcx.pas' {frmkhzlcx},
fwdjbData in 'fwdjbData.pas' {frmfwdjbDataModule: TDataModule},
ygzlxz in 'ygzlxz.pas' {frmygzlxz},
fwlxxz in 'fwlxxz.pas' {frmfwlxxz},
fwltj in 'fwltj.pas' {frmfwltj},
tjxz in 'tjxz.pas' {frmtjxz},
taskjdt in 'taskjdt.pas' {frmtaskjdt},
mythread in 'mythread.pas',
bxpzlr in 'bxpzlr.pas' {frmbxpzlr};
const
CM_RESTORE = WM_USER + $1000;
var
RvHandle: hWnd;
registerTemp: TRegistry;
DriverStr: string;
strFile, DBQFile: string;
TCSBCAODBC: Boolean;
{$R *.RES}
begin
{If there's another instance already running, activate that one}
RvHandle := FindWindow('StoreSystemfwxxglxt', nil);
if RvHandle > 0 then
begin
PostMessage(RvHandle, CM_RESTORE, 0, 0);
Exit;
end;
strFile := Trim(AnsiLowerCase(ExtractFilePath(Application.ExeName) + 'fwxxglbase.mdb'));
if not FileExists(strFile) then
begin
MessageDlg('数据库文件没有找到,系统无法运行', mtWarning, [mbOk], 0);
Exit;
end;
Application.Initialize;
Application.Title := '服务信息管理系统';
Splashform := TSplashform.Create(Application);
Splashform.show;
SplashForm.Update;
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
RootKey := HKEY_LOCAL_MACHINE; //设置根键值为HKEY_LOCAL_MACHINE
{检测系统是否注册}
TCSBCAODBC := False;
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', False) then
if ValueExists('fwxxgl_ODBC') then
TCSBCAODBC := True
else
TCSBCAODBC := False;
CloseKey;
{如果系统没有注册}
if TCSBCAODBC = False then
begin
{检测系统是否有Microsoft Access的ODBC驱动程序}
if openkey('Software\ODBC\ODBCINST.INI\ODBC Drivers', false) then
begin
if not ValueExists('Microsoft Access Driver (*.mdb)') then
begin
ShowMessage('系统中没有装入Microsoft Access Driver (*.mdb)的ODBC驱动程序,无法启动程序');
Closekey;
halt;
end;
CloseKey;
end
else
begin
ShowMessage('系统注册表存在问题,无法启动程序');
CloseKey;
halt;
end;
{读取Microsoft Access Driver (*.mdb)的驱动程序的存放位置}
if Openkey('Software\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb)', false) then
DriverStr := ReadString('Driver')
else
begin
ShowMessage('读取系统中Microsoft Access Driver (*.mdb)的ODBC驱动程序有误,导致无法加载启动程序');
Closekey;
halt;
end;
CloseKey;
{检测系统是否创建fwxxgl_ODBC}
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', False) then
if ValueExists('fwxxgl_ODBC') then
TCSBCAODBC := True
else
TCSBCAODBC := False;
CloseKey;
{创建fwxxgl_ODBC}
if not TCSBCAODBC then
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', True) then
begin
WriteString('fwxxgl_ODBC', 'Microsoft Access Driver (*.mdb)');
CloseKey;
end
else
begin
ShowMessage('写入系统注册表数据错误,无法加载启动程序');
Closekey;
halt;
end;
if not TCSBCAODBC then
begin
if OpenKey('Software\ODBC\ODBC.INI\fwxxgl_ODBC', True) then
begin
WriteString('DBQ', strFile); //指定数据库
WriteString('Description', '服务信息管理系统的数据源'); //数据源描述
//驱动程序DLL文件,根据系统安装的目录不同而不同。
WriteString('Driver', DriverStr); //驱动程序
WriteInteger('DriverId', 25);
WriteInteger('Exclusive', 0);
WriteInteger('SafeTransactions', 0);
WriteString('UID', '');
//CreateKey('Engines');
OpenKey('Engines', True);
//CreateKey('Jet');
if OpenKey('Jet', True) then
begin
WriteString('ImplicitCommitSync', '');
WriteInteger('MaxBufferSize', 2048);
WriteInteger('PageTimeout', 5);
WriteInteger('Threads', 3);
WriteString('UserCommitSync', 'Yes');
end
else
begin
ShowMessage('写入系统注册表数据错误,无法加载启动程序');
Closekey;
halt;
end;
TCSBCAODBC := True;
CloseKey;
end
else
begin
ShowMessage('写入系统注册表数据错误,无法加载启动程序');
Closekey;
halt;
end;
end;
{向系统注册表写入系统注册信息}
if OpenKey('Software\fwxxglxt', True) then
begin
WriteString('Register', 'True');
CloseKey;
end
else
begin
ShowMessage('写入系统注册表数据错误,无法加载启动程序');
Closekey;
halt;
end;
end
else
begin
if OpenKey('Software\ODBC\ODBC.INI\fwxxgl_ODBC', False) then
begin
if ValueExists('DBQ') then
begin
DBQFile := AnsiLowerCase(Trim(ReadString('DBQ')));
if strFile <> DBQFile then
begin
DeleteValue('DBQ');
WriteString('DBQ', strFile); //指定数据库
end
end;
end
else
begin
ShowMessage('系统注册表存在问题,无法启动程序');
CloseKey;
halt;
end;
CloseKey;
end;
end;
registerTemp.Free;
Application.CreateForm(TSysForm, SysForm);
Application.Run;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -