Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

шестнадцатиричные значения ключей в реестре   Найти похожие ветки 

 
Вася   (2006-10-15 14:59) [0]

Привет всем! Нужно прочитать значение IPAddress из ключа реестра
SYSTEM\CurrentControlSet\Services\{F7A33661-7511-485A-AEAA-55683BEBCCE8}\Parameters\Tcpip
оно есть hex(7)
при создании объекта TRegistry в дельфи возникли трудности с извлечением значения из ключа. Методы объекта не позволяют читать шестнадцатиричные значения. Как это  сделать?
TRegistry.readstring(), .readbinary и пр выдаёт ошибку...


 
Anatoly Podgoretsky ©   (2006-10-15 15:45) [1]

Ключ не может быть ни каким hex - это всего лишь имя.
А в данном ключе очень много параметров.
Тебе надо разобраться, что ты хочешь получить, пока ничего получить нельзя.
readstring надо вызывать с параметрами и вообще у тебя ошибка в 17 строке.


 
kami ©   (2006-10-15 19:21) [2]

Вася   (15.10.06 14:59)
оно есть hex(7)

Посмотрел несколько подобных значений IPAddress- все имеют тип REG_MULTI_SZ
Работать с ними можно, например, так :
http://www.delphiworld.narod.ru/base/ex_tregistry.html
Только подправить нужно, глуповасто там разбиение по строкам сделано, да и еще что-то было плохое - уже не помню, давно под себя переделывал.


 
Вася   (2006-10-16 09:15) [3]

Приведу кусок из *.reg файла

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{F7A33661-7511-485A-AEAA-55683BEBCCE8}\Parameters\Tcpip]
"EnableDHCP"=dword:00000001
"IPAddress"=hex(7):30,00,2e,00,30,00,2e,00,30,00,2e,00,30,00,00,00,00,00
"SubnetMask"=hex(7):30,00,2e,00,30,00,2e,00,30,00,2e,00,30,00,00,00,00,00
"DefaultGateway"=hex(7):00,00

В редакторе реестра действительно оно имеет тип мульти строка, но при попытке записать вместо что то типа "192.168.64.56", в реестр то записывается нормально, только утилита (подключение по локальной сети-настройка протокола TCP/IP-свойства), не видит адреса, выдаёт пустую строку, а если записать так, как приведено выше - всё ок. По поводу строки с ошибкой:

   a := TRegistry.Create;
   a.RootKey := HKEY_LOCAL_MACHINE;
   a.OpenKey("SYSTEM\CurrentControlSet\Services\{F7A33661-7511-485A-AEAA-55683BEBCCE8}\Parameters\Tcpip", false);
   adress:=a.ReadString("IPAddress");
   str:="IPAddress";
   adress:=a.
   a.Free;

так понятнее, просто хотел сэкономить место.


 
Вася   (2006-10-16 09:17) [4]

a := TRegistry.Create;
  a.RootKey := HKEY_LOCAL_MACHINE;
  a.OpenKey("SYSTEM\CurrentControlSet\Services\{F7A33661-7511-485A-AEAA-55683BEBCCE8}\Parameters\Tcpip", false);
  adress:=a.ReadString("IPAddress");
  a.Free;


 
Anatoly Podgoretsky ©   (2006-10-16 19:20) [5]

Это не STRING, а список WideString = 0.0.0.0
Дельфи поддержки не имеет, надо писать свою функцию.



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
11-1136877665
BaryVetaL
2006-01-10 10:21
2006.10.29
Как преобразовать ICO которая находится в потоке в PBitmap?


3-1157440210
ttt_111
2006-09-05 11:10
2006.10.29
Некорректный вывод числа при работе с БД.


2-1160548994
first_may
2006-10-11 10:43
2006.10.29
FormStyle


2-1160537533
pkm
2006-10-11 07:32
2006.10.29
Типизированный файл.


4-1150136401
redlord
2006-06-12 22:20
2006.10.29
перехват сообщений чужого окна