Главная страница
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.47 MB
Время: 0.017 c
3-61915
Andriy Tysh
2003-11-27 13:22
2003.12.19
Filter In DBGridEh


3-61901
Olga_Oo
2003-11-27 13:40
2003.12.19
Qreport


1-62082
Worm
2003-12-07 16:58
2003.12.19
Ошибка по адресу 00469С5T


1-62099
AndreySoft
2003-12-08 20:13
2003.12.19
Создание динамических объёктов


8-62165
Дидактилос из Эфебы
2003-08-22 11:54
2003.12.19
Запуск полноэкранного приложения на втором экране