![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Доброе времени суток! Мне необходимо записать в реестр бинарное значение виде 00 00 32 45 00 00 32, без TRegistry, но у меня не как не получается вот код:
Код:
function RegWriteBinary(RootKey: HKEY; Key, Name:string; Value: string): 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, 20); Result := Res = ERROR_SUCCESS; RegCloseKey(Handle); end; Помогите пожалуйста! Последний раз редактировалось Admin, 10.05.2011 в 20:28. |
#2
|
||||
|
||||
![]() Мне почему-то кажется, что BINARY значение должно быть не адресом строки (т.к. Value - УКАЗАТЕЛЬ на строку, и @Value вернет адрес указателя), а набором байт (массивом, буфером).
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() А как реализовать этот код ? У меня и так то же не получилось
|
#4
|
|||
|
|||
![]() Если пишешь бинарное значение, лучше без 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; |
#5
|
|||
|
|||
![]() Спасибо большое!!!!!
|