Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.017 c
15-1190321077
Суслик
2007-09-21 00:44
2007.11.04
VirtualPC and Other


2-1192094490
botaniQ
2007-10-11 13:21
2007.11.04
Глобальный перехват EConvertError...


2-1192321828
dreamse
2007-10-14 04:30
2007.11.04
Подскажите как получить название каталога из пути ?


2-1192213444
Neo
2007-10-12 22:24
2007.11.04
Как оптимизировать поиск по БД?


5-1162640276
ratas
2006-11-04 14:37
2007.11.04
Новый компонент на основе TTrackBar