⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fwxxglxt.dpr

📁 服务信息管理系统
💻 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 + -