![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
реестр!!! [D7, WinXP]
vamp_avp © (2007-10-11 10:27:00)Привет всем!
Пытаюсь из реестра достать данные типа мультистринг
и ничего не получается
может быть кто-нибуть подскажет
как это можно сделать
ЗАРАНЕЕ БЛАГОДАРЕН!
vamp_avp (2007-10-11 15:31:00) [1]var
Registry: TRegistry;
s: string;
i, l: Integer;
begin
Registry := TRegistry.Create(KEY_READ);
try
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.OpenKey('HARDWARE\description\System', False);
l := Registry.GetDataSize('SystemBiosVersion');
SetLength(s, l);
Registry.ReadBinaryData('SystemBiosVersion', s[1], l);
for i := 1 to l - 2 do
if s[i] = #0 then
s[i] := ',';
Memo1.Lines.Text := s;
finally
Registry.Free;
end;
так получается точно только что попробовал
ОГРОМНОЕ спасибо!
vamp_avp (2007-10-11 15:21:00) [2]Огромно спасибо!
замечание понял
учту на будущеееееее!!!!!
koha (2007-10-11 13:23:00) [3]
function RegGetMultiString(RootKey: HKEY; Name: String; Var Value: String): boolean;
var
Buf: Pointer;
BufSize: Cardinal;
begin
Result := False;
if RegGetValue(RootKey, Name, REG_MULTI_SZ, Buf, BufSize) then
begin
Dec(BufSize);
SetLength(Value, BufSize);
if BufSize > 0 then
CopyMemory(@Value[1], Buf, BufSize);
FreeMem(Buf);
Result := True;
end;
end;
koha (2007-10-11 13:22:00) [4]требуется API
function RegSetMultiString(RootKey: HKEY; Name: String; Value: String): boolean;
begin
Result := RegSetValue(RootKey, Name, REG_MULTI_SZ, PChar(Value + #0#0), Length(Value) + 2);
end;
koha (2007-10-11 13:15:00) [5]> [4] vamp_avp (11.10.07 11:31)
> А тем кто не знает такого
> просьба не писать, раз не знаешь
> (а в описании написано ХР)
- а вдруг узнает.... ты же ведь не знаешь, как прочитать, а пишиш.
MBo (2007-10-11 13:10:00) [6]>через ReadBinaryData не получается
не верю
var
Registry: TRegistry;
s: string;
i, l: Integer;
begin
Registry := TRegistry.Create(KEY_READ);
try
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.OpenKey('HARDWARE\description\System', False);
l := Registry.GetDataSize('SystemBiosVersion');
SetLength(s, l);
Registry.ReadBinaryData('SystemBiosVersion', s[1], l);
for i := 1 to l - 2 do
if s[i] = #0 then
s[i] := ',';
Memo1.Lines.Text := s;
finally
Registry.Free;
end;
evvcom (2007-10-11 13:04:00) [7]Ладно, не кипятись. Мне обычно regedit-а хватало, а он такого не знает. Посмотрел regedt32, этот знает.
Попробуй RegQueryValueEx тогда.
vamp_avp (2007-10-11 12:04:00) [8]Блин парни не получается
HKEY_LOCAL_MACHINE\HARDWARE\description\System
SystemBiosVersion тип мультистринг
если не верите можете сами посмотреть
через ReadBinaryData не получается
может кто еще подскажет
ЗАРАНЕЕ БЛАГОДАРЕН!!!!
vamp_avp (2007-10-11 11:31:00) [9]Всем спасибо!
А тем кто не знает такого
просьба не писать, раз не знаешь
(а в описании написано ХР)
evvcom (2007-10-11 11:22:00) [10]
> из реестра достать данные типа мультистринг
Блин, такого типа данных в реестре не знаю. Это что? Новая ОС какая с таким реестром? :)
Anatoly Podgoretsky (2007-10-11 10:38:00) [11]> vamp_avp (11.10.2007 10:27:00) [0]
Надо писать наследника от TRegistry или работать напрямую с АПИ
MBo (2007-10-11 10:35:00) [12]TRegistry.ReadBinaryData и поделить по нуль-терминаторах