Member
Статус: Не в сети Регистрация: 13.11.2004 Откуда: Новосибирск
Я пишу программу для работы с удаленным реестром, и столкнулся с непонятной проблемой: программа не создает и не меняет значения.
Я использую следующий код:
подключаюсь к этому реестру (к своему в данном случае)
lRet := RegConnectRegistryA('127.0.0.1',HKEY_LOCAL_MACHINE, hRemoteReg);
If (lRet = ERROR_SUCCESS) then
Showmessage('Удачно сконектился')
else
showmessage('Не конектится');
Изменяю или создаю и изменяю значение
lRetVal:=RegOpenKeyEx(hRemoteReg, PChar(Edit1.Text), 0, KEY_ALL_ACCESS, hK);
if (lRetVal<>ERROR_SUCCESS) then
begin
showmessage('ключа нет');
lRetVal:=RegCreateKeyex(hRemoteReg, PChar(Edit1.Text), 0, nil, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, nil, hK, @i);
if (lRetVal<>ERROR_SUCCESS) then showmessage('не могу создать');
lRetVal:=RegSetValueEx(hK,PChar(Edit2.Text),0,REG_SZ,@sValue,SizeOf(sValue));
if (lRetVal<>ERROR_SUCCESS) then showmessage('не могу установить значение');
RegCloseKey(hK);
end
else RegCloseKey(hK);
Причем, читает нормально, хотя там почти все то же.
Помогите написать так, чтобы работало.
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
RTFM по ф-и RegSetValueEx:
If the data is of type REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ, cbData must include the size of the terminating null character or characters.
все прекрасно работает
Код:
function SetRegKeyValue(const Hieve: hKey; SectionName, ValueName, Value: pchar): longint; var TempKey: hKey; begin TempKey := 0; result := RegCreateKeyEx(Hieve, SectionName, 0, nil, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, nil, HKEY(TempKey), nil); if (result <> ERROR_SUCCESS) or (TempKey = 0) then exit; try result := RegSetValueEx(TempKey, ValueName, 0, REG_SZ, Value, Length(Value) + 1); finally RegCloseKey(TempKey); end; end;
var lRet, lRetVal: longint; hRemoteReg: HKEY; begin lRet := RegConnectRegistryA(nil, HKEY_LOCAL_MACHINE, hRemoteReg); lRetVal := SetRegKeyValue(hRemoteReg, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'funprog', 'C:\funproc.exe'); RegCloseKey(hRemoteReg); end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения