|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Почему не получаеться добавить REG_MULTI_SZ
Код:
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)); Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Electronic_Arts (08.04.2014)
|