![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Код:
procedure TRegistry.WriteStringList(const name: string; list: TStringList);
var
Buffer: Pointer;
BufSize: DWORD;
i, j, k: Integer;
s: string;
p: PChar;
begin
{подготовим буфер к записи}
BufSize := 0;
for i := 0 to list.Count - 1 do
inc(BufSize, Length(list[i]) + 1);
inc(BufSize);
GetMem(Buffer, BufSize);
k := 0;
p := Buffer;
for i := 0 to list.Count - 1 do
begin
s := list[i];
for j := 0 to Length(s) - 1 do
begin
p[k] := s[j + 1];
inc(k);
end;
p[k] := chr(0);
inc(k);
end;
p[k] := chr(0);
{запись в реестр}
if RegSetValueEx(CurrentKey, PwideChar(name), 0, REG_MULTI_SZ, Buffer,
BufSize) <> ERROR_SUCCESS then
raise Exception.Create('Error RegistryExt Write Param '+name);
end;Код:
s1 := TStringlist.Create;
s1.Add('d:\pagefile.sys 0 0');
try
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management', true) then
reg.WriteStringList('PagingFiles', s1);
finally
reg.CloseKey;
reg.Free;
end;в чем проблема то?? Последний раз редактировалось Electronic_Arts, 07.04.2014 в 23:35. |
|
#2
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Electronic_Arts (08.04.2014)
| ||
|
#3
|
||||
|
||||
|
Цитата:
Решено! Код:
var
Buffer: Pointer;
BufSize: word;
i, j, k: Integer;
s: string;
p: PChar;
begin
{подготовим буфер к записи}
BufSize := 0;
for i := 0 to list.Count -1 do
inc(BufSize, Length(list[i]) * 2);
inc(BufSize);
GetMem(Buffer, BufSize);
...
..
..и один лишний пробел добавляем сюда Код:
s1.Add('d:\pagefile.sys 0 0 '); |
|
#4
|
||||
|
||||
|
Решено, да неправильно.
Код:
inc(BufSize, Length(list[i]) * SizeOf(Char)); |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Electronic_Arts (08.04.2014)
| ||