Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.05.2011, 09:50
xrpcompany xrpcompany вне форума
Прохожий
 
Регистрация: 30.04.2011
Сообщения: 16
Репутация: 10
По умолчанию Запись в реестр

Как записать в реестр WORD значение без TRegistry. Я нашел запись строкового, но мне нужно dword?
строковое:
Код:
function RegWriteStr(RootKey: HKEY; Key, Name, 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_SZ, PChar(Value),
    Length(Value) + 1);
  Result := Res = ERROR_SUCCESS;
  RegCloseKey(Handle);
end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 07.05.2011 в 17:16.
Ответить с цитированием
  #2  
Старый 07.05.2011, 13:53
Человек_Борща Человек_Борща вне форума
Новичок
 
Регистрация: 17.09.2010
Адрес: Беларусь, г. Минск
Сообщения: 58
Версия Delphi: 7, 2010,XE
Репутация: 10
По умолчанию

Мне кажется надо использовать REG_DWORD всесто REG_SZ
Ответить с цитированием
  #3  
Старый 07.05.2011, 15:29
xrpcompany xrpcompany вне форума
Прохожий
 
Регистрация: 30.04.2011
Сообщения: 16
Репутация: 10
По умолчанию

Я пробывал в место REG_SZ вставить REG_DWORD , но выдает ошибку
Ответить с цитированием
  #4  
Старый 07.05.2011, 15:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
RegSetValueEx(Handle, PChar(Name), 0, REG_DWORD, @variable, 4);
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 07.05.2011, 16:57
xrpcompany xrpcompany вне форума
Прохожий
 
Регистрация: 30.04.2011
Сообщения: 16
Репутация: 10
По умолчанию

@variable какое значение должно быть
Ответить с цитированием
  #6  
Старый 07.05.2011, 17:47
xrpcompany xrpcompany вне форума
Прохожий
 
Регистрация: 30.04.2011
Сообщения: 16
Репутация: 10
По умолчанию

Спасибо получилось!
Ответить с цитированием
  #7  
Старый 20.03.2012, 00:20
Ralik Ralik вне форума
Прохожий
 
Регистрация: 11.03.2012
Сообщения: 8
Репутация: 10
По умолчанию Ну не пойму я, помогите.

я так и не понял, как с помощью RegSetValueEx создать ключ в реестра по адресу HKEY_CURRENT_USER\Software\Mykeu\ ключ DWORD со значением 1????
Ответить с цитированием
  #8  
Старый 20.03.2012, 00:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
RegSetValueEx(Handle, PChar(Name), 0, REG_DWORD, @variable, 4);

Читаем внимательно, variable переменная типа DWORD, со значением 1.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 20.03.2012, 01:27
Ralik Ralik вне форума
Прохожий
 
Регистрация: 11.03.2012
Сообщения: 8
Репутация: 10
По умолчанию

Я внимательно прочитал. У меня не получается. Ну тупой я и что?
RegSetValueEx(HKEY_CURRENT_USER, PChar(Name), 0, REG_DWORD, @1, 4)
Что здесь не правильно и куда вписывать нужный ключ?
Ответить с цитированием
  #10  
Старый 20.03.2012, 01:53
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Ralik
RegSetValueEx(HKEY_CURRENT_USER, PChar(Name), 0, REG_DWORD, @1, 4)
Значит не читал. не @1, а @variable:

Цитата:
Читаем внимательно, variable переменная типа DWORD, со значением 1.

Код:
var
  variable : DWORD;
begin
  variable := 1;
  RegSetValueEx(Handle, PChar(Name), 0, REG_DWORD, @variable, 4);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 20.03.2012, 01:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Открываем MSDN и читаем:
Цитата:
hKey [in]
A handle to an open registry key. The key must have been opened with the KEY_SET_VALUE access right. For more information, see Registry Key Security and Access Rights.
This handle is returned by the RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, or RegOpenKeyTransacted function. It can also be one of the following predefined keys:

Теперь смотрим функцию RegCreateKeyEx:
Цитата:
LONG WINAPI RegCreateKeyEx(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
__reserved DWORD Reserved,
__in_opt LPTSTR lpClass,
__in DWORD dwOptions,
__in REGSAM samDesired,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__out PHKEY phkResult,
__out_opt LPDWORD lpdwDisposition
);

Еще пояснения нужны?

ЗЫ. И не забудь закрыть ключ после записи.
Ответить с цитированием
  #12  
Старый 20.03.2012, 02:25
Ralik Ralik вне форума
Прохожий
 
Регистрация: 11.03.2012
Сообщения: 8
Репутация: 10
По умолчанию

Да, я все понял, спасибо вам
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025