Delphi往注册表写入字符串、REG_DWORD、二进制

来源:互联网 发布:mac平面排版软件 编辑:程序博客网 时间:2024/05/17 08:46

procedure   TForm1.Button1Click(Sender:   TObject);
var
    reg,   reg1:   TRegistry;
    info:   TRegDataInfo;
    buf:   PByteArray;
    bufSize:   Integer;
    ValueName:   string;
begin
    reg   :=   TRegistry.Create;
    reg1   :=   TRegistry.Create;
    try
        reg.RootKey   :=   HKEY_CLASSES_ROOT;
        reg1.RootKey   :=   HKEY_CLASSES_ROOT;
        if   reg.OpenKey( '/DelphiProject/Shell/Open/command ',   True)   and
              reg1.OpenKey( '/DelphiProject/Shell/Open/dpr ',   True)   then
        begin
            ValueName   :=   'Data1 ';    

            reg.GetDataInfo(ValueName,   info);
            case   info.RegData   of
                rdString:         //   字符串
                    begin
                        reg1.WriteString(ValueName,   reg.ReadString(ValueName));
                        reg.DeleteValue(ValueName);
                    end;
                rdInteger:       //   DWORD
                    begin
                        reg1.WriteInteger(ValueName,   reg.ReadInteger(ValueName));
                        reg.DeleteValue(ValueName);
                    end;
                rdBinary:         //   二进制
                    begin
                        bufSize   :=   info.DataSize;
                        if   bufSize   >   0   then   begin
                            buf   :=   AllocMem(bufSize);
                            reg.ReadBinaryData(ValueName,   buf^,   bufSize);
                            reg1.WriteBinaryData(ValueName,   buf^,   bufSize);
                            FreeMem(buf,   bufSize);
                            reg.DeleteValue(ValueName);
                        end;
                    end;
            end;
            reg.CloseKey;
        end;
    finally
        reg.Free;
    end;
end;

 

www.taoyou100.cn  淘友100 满意100,提供给您最信赖的网络购物享受。

原创粉丝点击