Показать сообщение отдельно
  #4  
Старый 11.05.2011, 00:55
Raskolnikov Raskolnikov вне форума
Прохожий
 
Регистрация: 20.04.2011
Адрес: Киров
Сообщения: 35
Версия Delphi: 7 Enterprise
Репутация: 148
По умолчанию

Если пишешь бинарное значение, лучше без string обойтись.
Саму процедуру можно сделать такой:

Код:
function RegWriteBinary(RootKey: HKEY; Key, Name:string; const Value; Size: Integer): Boolean;
var
  Handle: HKEY;
  Res: LongInt;
begin
  Result := False;
  Res := RegCreateKeyEx(RootKey, PChar(Key), 0, nil, REG_OPTION_NON_VOLATILE,
    KEY_ALL_ACCESS, nil, Handle, nil);
  if Res <> ERROR_SUCCESS then
    Exit;
  Res :=RegSetValueEx(Handle, PChar(Name), 0, REG_BINARY, @Value, Size);
  Result := Res = ERROR_SUCCESS;
  RegCloseKey(Handle);
end;

А вызывать ее например так:
Код:
const
  DataSize = 7;
  Data: array[1..DataSize] of Byte= (00, 00, 32, 45, 00, 00, 32);
begin
  RegWriteBinary(HKEY_CURRENT_USER, 'Test', 'foo', Data, DataSize);
end;
Ответить с цитированием