Главная страница
    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.45 MB
Время: 0.029 c
14-1117565007
NightStranger
2005-05-31 22:43
2005.06.29
С чего все начинали


3-1116841266
Ck
2005-05-23 13:41
2005.06.29
Как прибавить текст


1-1117613658
Crazy_Diman
2005-06-01 12:14
2005.06.29
Photoshop


4-1115117068
Steepesson
2005-05-03 14:44
2005.06.29
резидентная программа


14-1117951008
Гарри Поттер
2005-06-05 09:56
2005.06.29
Костя проиграл бой.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский