谁能给我一读注册表的代码

解决方案 »

  1.   

    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;
      

  2.   

    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.
      

  3.   

    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;