写注册表中REG_MULTI_SZ的代码,支持d2010,EM论坛里找的。

procedure WriteMultiStrings(const valueName: string; aStrings: TStrings;
oReg: TRegistry);
var
i: integer;
size: DWORD;
st:
string;
begin
st :
= '';
for i := 0 to aStrings.Count - 1 do
st :
= st + aStrings[i] + #0;
st :
= st + #0;
size :
= Length(st) * SizeOf(Char);
SetLastError(RegSetValueEx(oReg.CurrentKey, PChar(valueName),
0,
REG_MULTI_SZ, @st[
1], size));
if GetLastError <> ERROR_SUCCESS then
raise Exception.Create('Unable to write MULTI_SZ value');
end;

 

posted on 2010-11-27 08:15  星五  阅读(751)  评论(0编辑  收藏  举报