Текущий архив: 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