Главная страница
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.033 c
1-1117688549
john_mag
2005-06-02 09:02
2005.06.29
обработчик MouseToCall


14-1117815737
Kerk
2005-06-03 20:22
2005.06.29
Раскрыта....


1-1118072378
Nimbus
2005-06-06 19:39
2005.06.29
Свойство "parent" для формы, размещённой в DLL?


1-1117781895
qyu
2005-06-03 10:58
2005.06.29
Как в Grid


1-1118154205
Igor Stepanov
2005-06-07 18:23
2005.06.29
Показ точек линии в TEEChart программным способом