Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

RegOpenKey   Найти похожие ветки 

 
psa247 ©   (2005-05-08 12:36) [0]


reg : hkey;
tmp : string;
begin
  RegOpenKey(HKEY_LOCAL_MACHINE,
  "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", reg);
  tmp:= Path+"\"+ Check_OS +" /start";
  if CBMain.Checked then
  RegSetValue(reg,"UMP",REG_SZ,PChar(tmp),sizeof(tmp))
else RegDeleteKey(reg, "UMP");
  RegCloseKey(reg);

Подскажите, почему в значении параметра "UMP" пишется бред?
Заранее благодарен


 
Eraser ©   (2005-05-08 12:40) [1]

psa247 ©

Потому, что tmp должна иметь тип PChar, и у для неё должна быть выделена память (GetMem).


 
VMcL ©   (2005-05-08 12:41) [2]

>>psa247 ©   (08.05.05 12:36)

>Подскажите, почему в значении параметра "UMP" пишется бред?

Потому что sizeof(tmp) = 4

RegSetValue(reg, "UMP", REG_SZ, PChar(tmp), Length(tmp))


 
psa247 ©   (2005-05-08 13:46) [3]

Вот что накопал:

The RegOpenKey function opens the specified key. This function is provided for compatibility with Windows version 3.1. Win32-based applications should use the RegOpenKeyEx function.

The RegSetValue function associates a value with a specified key. This value must be a text string and cannot have a name. This function is provided for compatibility with Windows version 3.1. Win32-based applications should use the RegSetValueEx function, which allows an application to set any number of named values of any data type.

Т.е. вот так будет правильно

RegOpenKeyEX(HKEY_LOCAL_MACHINE,
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 0, KEY_SET_VALUE, reg);
  tmp:= Path+"\"+ Check_OS +" /start";
  if CBMain.Checked then begin
  RegSetValueEX(reg, "UMP",0,REG_SZ, PChar(tmp), Length(tmp));
  end
else RegDeleteKey(reg, "UMP");
  RegCloseKey(reg);


Спасибо


 
Eraser ©   (2005-05-08 13:53) [4]

psa247 ©

Я вообще пользуюсь TRegistry.... имхо удобнее.


 
psa247 ©   (2005-05-08 14:11) [5]

Видел в FAQ вопрос по косяку TRegistry с доступом к HKLM, да и весит он много. Пришлось проект переписывать на WinAPI



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1118207295
Коля
2005-06-08 09:08
2005.06.29
Создание компонентов Событие OnChange Для TEdit


14-1117535388
Digitman
2005-05-31 14:29
2005.06.29
Потолкуем о Lazarus ?...


4-1114721597
i-s-v
2005-04-29 00:53
2005.06.29
Постраничная организация памяти?


1-1117618929
a80h19
2005-06-01 13:42
2005.06.29
Полиморфизм для переменной


3-1116480288
dreamse
2005-05-19 09:24
2005.06.29
Как узнать какие базы есть на сервере MSSQL ?