WinCE + TRegistry.GetKeyNames - не работает

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

WinCE + TRegistry.GetKeyNames - не работает

Сообщение Bupyc » 11.11.2007 16:44:31

Не работает метод GetKeyNames класса TRegistry при вызове в WinCE

Однако, из выйти из ситуации можно воспользовавшись следующей функцией:

Код: Выделить всё
procedure GetSubKeys(KeyName : String; SubKeysList : TStringList);
var
  subKeyNameBuf : array [1 .. 300] of Char;
  classNameBuf  : array [1 .. 300] of Char;
  subKeyLng     : Cardinal;
  classLng      : Cardinal;
  keyHndl       : THandle;
  index         : Integer;
  keyTime       : TFileTime;
 
begin
SubKeysList.Clear();

if (RegOpenKeyEx(HKEY_CURRENT_USER,PWideChar(WideString(KeyName)),0,KEY_READ,keyHndl) = ERROR_SUCCESS) then
begin
  index := 0;

  FillChar(subKeyNameBuf,SizeOf(subKeyNameBuf),#0);
  FillChar(classNameBuf,SizeOf(classNameBuf),#0);

  subKeyLng := SizeOf(subKeyNameBuf);
  classLng  := SizeOf(classNameBuf);

  while RegEnumKeyEx(keyHndl,              // handle of key to enumerate
                     index,                // index of subkey to enumerate
                     @subKeyNameBuf[1],    // address of buffer for subkey name
                     subKeyLng,            // address for size of subkey buffer
                     NIL,                  // reserved
                     @classNameBuf[1],     // address of buffer for class string
                     @classLng,            // address for size of class buffer
                     @keyTime              // address for time key last written to
                     ) = ERROR_SUCCESS do
  begin
   SubKeysList.Add(WideCharToString(@subKeyNameBuf[1]));

   FillChar(subKeyNameBuf,SizeOf(subKeyNameBuf),#0);
   FillChar(classNameBuf,SizeOf(classNameBuf),#0);

   subKeyLng := SizeOf(subKeyNameBuf);
   classLng  := SizeOf(classNameBuf);

   Inc(index);
  end;

  RegCloseKey(keyHndl);
end;
end;

Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Юра » 12.11.2007 11:06:17

А в багтрекер сообщить слабо?
Юра
постоялец
 
Сообщения: 163
Зарегистрирован: 25.05.2005 10:20:09
Откуда: Украина, Киев

Сообщение Bupyc » 12.11.2007 12:29:02

Где про багтрекер почитать можно? Я с фрипаскалем пару месяцев всего работаю.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Attid » 12.11.2007 13:44:16

http://freepascal.org/mantis/main_page.php

регишся в настройках ставишь руский язык и дальше все интуитивно.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Bupyc » 12.11.2007 15:33:51

Attid, спасибо. Буду тогда туда багрепорты сбрасывать.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70

Рейтинг@Mail.ru