Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
11-1100959828
Vladimyr
2004-11-20 17:10
2005.06.29
OnPaint = 100 раз ?!..


3-1115984454
tema
2005-05-13 15:40
2005.06.29
Поиск без locate


5-1087794979
Adis
2004-06-21 09:16
2005.06.29
Ресурс


1-1117867534
Vf
2005-06-04 10:45
2005.06.29
массив


1-1117813072
Dezmond
2005-06-03 19:37
2005.06.29
Сообытие или сообщение о деактивации окна




   Наверх