读取注册表键值:
var
Reg:TRegistry;
buff: pchar;
str: String;
begin
Reg := TRegistry.Create();
Reg.RootKey := HKEY_LOCAL_MACHINE;
OpenKey('SYSTEM\MyKey,False);
//Mykey里有一个多字符串值
//'1111111111111'
//'2222222222222'
//'3333333333333'
GetMem(buff,1024);
Reg.ReadBinaryData('Bind',buff^,1024);
//buff^里已经存储多字符串值
str := strpas(buff);
freemem(buf);
reg.closekey;
Reg.free;
end;
str只可以得到第一个串的值,我想得到多个串的值,怎么办?
var
Reg:TRegistry;
buff: pchar;
str: String;
begin
Reg := TRegistry.Create();
Reg.RootKey := HKEY_LOCAL_MACHINE;
OpenKey('SYSTEM\MyKey,False);
//Mykey里有一个多字符串值
//'1111111111111'
//'2222222222222'
//'3333333333333'
GetMem(buff,1024);
Reg.ReadBinaryData('Bind',buff^,1024);
//buff^里已经存储多字符串值
str := strpas(buff);
freemem(buf);
reg.closekey;
Reg.free;
end;
str只可以得到第一个串的值,我想得到多个串的值,怎么办?
解决方案 »
- 本人刚学indy TCP Server,疑惑一个问题:Server能判断是哪个IP发的数据吗?
- 平坦寻址中一个基本的但是一直没找到答案的问题
- ZEOSDBO-6.6.3 连接MYSQL , 用IZResultSet得到结果集, 会出现中文编码问题, 有待解决
- 如何判断点击用webbrowser显示的网页中的连接的url是什么?
- 关于Tstringgrid控件的一个问题
- ★★★★遇到了学Delphi以来最难理解的问题(有关程序安装)★★★★
- 如何取出数据库中所有表名?
- 用delphi开发一个工资软件?
- delphi中,没有类似map的key-value的hashMap类?
- 关于delphi中tactionlist这个控件中tsearchfind的问题!
- 串口接收数据乱码的问题
- 怎么对 ListBox 的内容Undo呢?
var
Reg: TRegistry;
Val: TStringList;
I: Integer;
begin
Reg := TRegistry.Create;
Val := TStringList.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('System\MyKey',False);
Reg.GetValueNames(Val);
for I:=0 to Pred(Val.Count) do
ShowMessage(Val.Strings[I]+'='+Reg.ReadString(Val.Strings[I]));
finally
Reg.Free;
Val.Free;
end;
end;PS: ReadString 可以任意更改为其他方式如您的ReadBinaryData 或ReadInteger....
System\MyKey下的Bind为多字符串键值。
所以Reg.ReadString(Val.Strings[I])这个方法行不通!能帮我再想想办法吗?我上面用BinaryData可以将多串放在buff^里面,就是不知道下一步怎么将它分隔并变成string来操作,如果知道,还希望能告知,先谢谢了。
var
Reg:TRegistry;
buff: array[0..1024] of char;
i:integer;
begin
Reg := TRegistry.Create();
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM\MyKey',False);
Reg.ReadBinaryData('Bind',buff,1024);
Reg.closekey;
Reg.Free;
for i := 0 to 1024 do
if (buff[i]=#0) and (buff[i+1]<>#0) then buff[i]:=' ';
ShowMessage(buff);
end;