tested XP, Win 7
misal untuk update gateway game DoTA
semoga bermanfaat
source code :
Write MultiLine Registry.zip
Code:
procedure TForm1.Button1Click(Sender: TObject);
procedure kg_WriteStrings(const CurrentKey: HKey; const Subkey, valueName: string; aStrings: TStrings ) ;
var
p, buffer : PChar ;
i : Integer ;
size : DWORD ;
key: HKEY;
begin
size := 0 ;
for i := 0 to aStrings.Count - 1 do
Inc(size, Length(aStrings [i]) + 1) ;
Inc (size) ;
GetMem(buffer, size) ;
try
p := buffer ;
for i := 0 to aStrings.count - 1 do
begin
lstrcpy(p, PChar(aStrings [i])) ;
Inc(p, lstrlen (p) + 1)
end;
p^ := #0 ;
if RegOpenKey(CurrentKey, PChar(Subkey), key) = ERROR_SUCCESS then
begin
//SetLastError(RegSetValueEx(oReg.CurrentKey, PChar(valueName), 0, REG_MULTI_SZ, buffer, size)) ;
SetLastError(RegSetValueEx(key, PChar(valueName), 0, REG_MULTI_SZ, buffer, size)) ;
if GetLastError <> ERROR_SUCCESS then
raise Exception.Create('Unable to write MULTI_SZ value') ;
end
finally
FreeMem(buffer)
end
end;
begin
kg_WriteStrings(HKEY_CURRENT_USER,'Software\Blizzard Entertainment\Warcraft III', 'Battle.net Gateways', Memo1.Lines);
end;
|