Текущий архив: 2007.11.04;
Скачать: CL | DM;
Вниз
реестр!!! Найти похожие ветки
← →
vamp_avp (2007-10-11 10:27) [0]Привет всем!
Пытаюсь из реестра достать данные типа мультистринг
и ничего не получается
может быть кто-нибуть подскажет
как это можно сделать
ЗАРАНЕЕ БЛАГОДАРЕН!
← →
MBo © (2007-10-11 10:35) [1]TRegistry.ReadBinaryData и поделить по нуль-терминаторах
← →
Anatoly Podgoretsky © (2007-10-11 10:38) [2]> vamp_avp (11.10.2007 10:27:00) [0]
Надо писать наследника от TRegistry или работать напрямую с АПИ
← →
evvcom © (2007-10-11 11:22) [3]
> из реестра достать данные типа мультистринг
Блин, такого типа данных в реестре не знаю. Это что? Новая ОС какая с таким реестром? :)
← →
vamp_avp (2007-10-11 11:31) [4]Всем спасибо!
А тем кто не знает такого
просьба не писать, раз не знаешь
(а в описании написано ХР)
← →
vamp_avp (2007-10-11 12:04) [5]Блин парни не получается
HKEY_LOCAL_MACHINE\HARDWARE\description\System
SystemBiosVersion тип мультистринг
если не верите можете сами посмотреть
через ReadBinaryData не получается
может кто еще подскажет
ЗАРАНЕЕ БЛАГОДАРЕН!!!!
← →
evvcom © (2007-10-11 13:04) [6]Ладно, не кипятись. Мне обычно regedit-а хватало, а он такого не знает. Посмотрел regedt32, этот знает.
Попробуй RegQueryValueEx тогда.
← →
MBo © (2007-10-11 13:10) [7]>через 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;
← →
koha (2007-10-11 13:15) [8]> [4] vamp_avp (11.10.07 11:31)
> А тем кто не знает такого
> просьба не писать, раз не знаешь
> (а в описании написано ХР)
- а вдруг узнает.... ты же ведь не знаешь, как прочитать, а пишиш.
← →
koha (2007-10-11 13:22) [9]требуется 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:23) [10]
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;
← →
vamp_avp (2007-10-11 15:21) [11]Огромно спасибо!
замечание понял
учту на будущеееееее!!!!!
← →
vamp_avp (2007-10-11 15:31) [12]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;
так получается точно только что попробовал
ОГРОМНОЕ спасибо!
Страницы: 1 вся ветка
Текущий архив: 2007.11.04;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.033 c