关于读写注册表二进制数据的问题
在Delphi的帮助文件中得到了关于注册表二进制数据的读写函数声明,但是帮助文件中并没有给出例子.现在我给出例程.
1.读取二进制数据 function ReadBinaryData(const Name: String; var Buffer; BufSize: Integer): Integer; 从当前键值返回一个二进制数据.如果成功则返回所需数据,所需数据保存在buffer中,而返回的integer值表示返回数据的大小(byte).
2.存储二进制数据 procedure WriteBinaryData(const Name: String; var Buffer; BufSize: Integer); 存储一个二进制数据到指定的键值.
例程: procedure TForm1.Button1Click(Sender: TObject); var reg:TRegistry; {声明Regstry对象} typ:TRegDataType; {注册表数据类型.常用的有字符串类型(rdString)、数值类型(rdInteger)、二进制类型(rdBinary)} str:string; {用于显示操作信息} i:integer; {注册表的数据大小,以字节为单位} vv:integer; {注册表的数据内容} begin reg:=TRegistry.Create; {创建注册表对象} reg.RootKey :=HKEY_LOCAL_MACHINE; {设置根键} reg.OpenKey ('MYSOFT',TRUE); {打开主键} typ:=reg.GetDataType('ccc'); {得到所需数据的类型} i:=reg.GetDataSize('ccc'); {得到所需数据的大小} case typ of {根据数据类型显示提示信息} rdstring: str:='This is String Type'; rdInteger: str:='This is Integer Type'; rdBinary: str:='This is Binary Type'; else str:='This is Unknown Type'; end; memo1.Lines.Add(str); memo1.lines.Add(inttostr(i)); {提示信息结束} reg.ReadBinaryData('ccc',vv,i); {读取数据的内容,函数返回数据内容的大小[本例中未写出返回值]} memo1.Lines.add(inttostr(vv)); vv:=1; {设定数据内容vv=1} reg.WriteBinaryData('ccc',vv,i); {把数据内容写入注册表中} reg.CloseKey; {关闭主键} reg.Free; {释放注册表对象} end; 
|