写注册表中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;