Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 3 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

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.

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Member
Статус: Не в сети
Регистрация: 13.11.2004
Откуда: Новосибирск
Спасибо! Все работает!
Моя ошибка была в том, что я пытался создавать значения в разделах, которых нет.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 3 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan