Реестр Windows
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Реестр Windows
Есть ли какие-либо функции по чтению значений реестра Windows из вип?
Re: Реестр Windows
Изучал вопрос в рамках задачи по масштабированию создаваемых объектов.
1. Встроенные (RegistryGetBoolean и т.д.) читают/пишут только свою ветку - 'SoftWare\Galaktika Corp'.
2. Через OleCall, но нужно подождать пока решат проблему с обращениям к наследникам (ПИР зарегистрирован).
Через vbs читает (RegRead.cmd):
А через OleCall нет:
Получаем - Не найден метод RegRead;
Однако при этом:
значение возвращает.
3. Пишем свою dll. Но если используется трехзвенка, то она не поможет.
1. Встроенные (RegistryGetBoolean и т.д.) читают/пишут только свою ветку - 'SoftWare\Galaktika Corp'.
2. Через OleCall, но нужно подождать пока решат проблему с обращениям к наследникам (ПИР зарегистрирован).
Через vbs читает (RegRead.cmd):
Код: Выделить всё
Dim wsh
Wsh=CreateObject("WScript.Shell");
sReg=wsh.RegRead("HKEY\Control Panel\Desktop\LogPixels")
MsgBox sReg
Код: Выделить всё
hOle := CreateOle('WScript.Shell');
var Pixels :word;
OleCall2(hOle,ocFunc,'RegRead','HKEY\Control Panel\Desktop\LogPixels',Pixels);
Однако при этом:
Код: Выделить всё
OleCall1(hOle,ocGet,'CurrentDirectory',tStr')
3. Пишем свою dll. Но если используется трехзвенка, то она не поможет.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Реестр Windows
По описанной m0p3e проблемы использования OLE из Гал есть ПИР(102.163779) на эту тему, который в 5,5,28 атлантисе вроде как решен должен быть. Так что можно будет скоро быстрее всего
А так да - написать свою dll под конкретные нужды . зарегить ее в вип и юзать.
А так да - написать свою dll под конкретные нужды . зарегить ее в вип и юзать.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Реестр Windows
Не помню. Но вы можете написать свою DLL и подключить ее к системе. Лучше на делфятке - там проще - смотрите в FRM\C_ExtFun.FrmSrc.zip\SRC\CompSrc\C\C_ExtFun\Vip\ там полно инков с подключением функций именно с dll собранных на дельфятке. C++ тоже вроде как можно. С c# посложнее, но тоже можно, но там уже нужно делать обертку - в доке написано как - ищите atltlb.exe, а dll придется регить в реестре через RegAsm.exe.
Re: Реестр Windows
В C_ExtFun.res описана такая функция:
GetRegistryValue(longint,string,string): string;
Точного смысла параметров не знаю, но вариантов немного, можно выяснить опытным путём.
GetRegistryValue(longint,string,string): string;
Точного смысла параметров не знаю, но вариантов немного, можно выяснить опытным путём.
Re: Реестр Windows
Стоит попробовать:KATZ писал(а):GetRegistryValue(longint,string,string): string;
function GETREGISTRYVALUE(RootKey : longint; KeyName, ValueName: shortstring): shortstring; external 'DDELib.dll';
Первый параметр:
Код: Выделить всё
case RootKey of
0: Registry.RootKey := HKEY_CLASSES_ROOT;
1: Registry.RootKey := HKEY_CURRENT_USER;
2: Registry.RootKey := HKEY_LOCAL_MACHINE;
3: Registry.RootKey := HKEY_USERS;
5: Registry.RootKey := HKEY_CURRENT_CONFIG;
else
Registry.RootKey := HKEY_CLASSES_ROOT;
end;
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Реестр Windows
Спасибо, будем смотреть.