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

Вниз

Помогите разобраться с функцией !   Найти похожие ветки 

 
alexis   (2003-10-26 12:05) [0]

Мне требуется прочесть строку из определенного ключа реестра.В инете я узнал о ф-ции RegQueryValue.
Там было написано следующее:

RegQueryValue(Key: HKey; SubKey: PChar; Value: PChar; var cb: Longint): Longint;

Возвращает текстовую строку, связанную с ключом Key\SubKey.
Value - буфер для строки; cb- размер, на входе - размер буфера, на выходе - длина возвращаемой строки. Возврат - код ошибки.

Именно с буфером для строки я не могу разобраться.Я написал такой код:

procedure TForm1.FormCreate(Sender: TObject);
var
imia:array[0..40] of char;
s:longint;
MyKey:HKey;

begin

RegQueryValue(HKEY_local_machine,"Software\Microsoft\Windows\CurrentVersion\productid",imia,s);
showmessage("s="+inttostr(s));
showmessage(StrPas(imia));

end;

Но при запуске получается какая-то хрень: вначале выдается номер 420001(причем при разных ключах число s не меняется), потом вместо строкового значения что-то вроде 3@ (????).Я попробовал объявить буффер как массив строк (array[0..40] of string), но компилятор выдает: Type mismatch-Array and PChar.
Может функцию StrPas неправильно использую? Как мне получить нормальное строковое значение?
Заранее благодарен.


 
Rouse_   (2003-10-26 12:14) [1]

if RegQueryValueEx (Key, FoldName, nil, @D1, @Folder[1], @D2) = Error_Success

Желаю успехов


 
alexis   (2003-10-27 12:26) [2]

А подробнее об аргументах функции мог бы написать? Что за
nil, @D1, @Folder[1], @D2 - и куда записывается строковое значение?


 
Игорь Шевченко   (2003-10-27 13:05) [3]

procedure TForm1.FormCreate(Sender: TObject);
var
imia:array[0..40] of char;
s:longint;
MyKey:HKey;

begin

s := SizeOf(imia);

RegQueryValue(HKEY_local_machine,"Software\Microsoft\Windows\CurrentVersion\productid",imia,s);
showmessage("s="+inttostr(s));
showmessage(StrPas(imia));

end;



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

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

Наверх




Память: 0.44 MB
Время: 0.01 c
1-62138
Василиск
2003-12-09 13:28
2003.12.19
Tnt Components KeyPress


1-62002
Юлиана
2003-12-06 03:04
2003.12.19
Как нарисовать форму?


3-61946
Евгений
2003-11-26 10:51
2003.12.19
Использование DLL для коннекта с БД


1-62141
loki128
2003-12-07 12:54
2003.12.19
COM


14-62219
Dean
2003-11-26 04:45
2003.12.19
Сдохла мама





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский