//------------------------------------------------------------------------------
// Запись TStringList ввиде значения типа REG_MULTI_SZ в реестр
//------------------------------------------------------------------------------
procedure
var
Buffer : Pointer;
BufSize : DWORD;
i, j, k : Integer;
s : string
p : PChar;
begin
{подготовим буфер к записи}
BufSize := 0;
for
inc(BufSize);
GetMem(Buffer, BufSize);
k := 0;
p := Buffer;
for
s := list[i];
for
p[k] := s[j+1];
inc(k);
end
p[k] := chr(0);
inc(k);
end
p[k] := chr(0);
{запись в реестр}
if
end
//------------------------------------------------------------------------------
// Чтение TStringList ввиде значения типа REG_MULTI_SZ из реестра
//------------------------------------------------------------------------------
procedure
var
BufSize,DataType: DWORD;
Len, i: Integer;
Buffer: PChar;
s: string
begin
if
{чтение из реестра}
Len := GetDataSize(Name);
if
Buffer := AllocMem(Len);
if
try
DataType := REG_NONE;
BufSize := Len;
if
if
{запись в TStringList}
list.Clear;s := '';
for
// BufSize-2 т.к. последние два нулевых символа
if
list.Add(s);
s := '';
end else s := s + Buffer[i];
end
finally
FreeMem(Buffer);
end
end
end
Как я могу определить доступные сервера приложений на этой машине через Registry?
Nomadic советует:
Прочитайте ключ под HKEY_CLASSES_ROOT\CLSID\*, просматривая его насчёт ключей, которые имеют подключ "Borland DataBroker". Эти вхождения и являются серверами приложений.
Ниже пример, который загружает имена доступных серверов приложений в Listbox:
uses
procedure
var
I: integer;
TempList: TStringList;
begin
TempList := TStringList.Create;
try
with TRegistry.Create do try
RootKey := HKEY_CLASSES_ROOT;
if
CloseKey;
for
if
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT