Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

считать последовательно строки в реестре

290
11 мая 2012 года
Patr1ot
458 / / 09.02.2008
Добрый день!
Небольшая проблема, в реестре в одной из ветки постоянно меняются имена ключей хранятся в типе REG_BINARY.

как можно их считать последовательно, подгружая каждую из них последовательно, попробовал закинуть в цикл следующий код, а как указать индекс ключа не знаю, подскажите пожалуйста если кто знает, спасибо.


Код:
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
    {

    reg->RootKey = HKEY_LOCAL_MACHINE;


    reg->OpenKey("SOFTWARE\\Mounte\\", true);


    reg->??????? //что указать здесь чтобы считать только один ключ последовательно с верху в низ.



delete reg;
290
11 мая 2012 года
Patr1ot
458 / / 09.02.2008
Спасибо нашел.

Если кому интересно.

Создаем в текстовом редакторе (например "Блокноте") текстовый файл
в который пишем Имя ресурса | Тип ресурса | Имя программы, то есть, например:

myEXESource EXEFILE Project1.exe

сохраняем этот файл с расширением .rc и присоеденяем к нашему проекту
(Project->Add To Project и указываем имя нашего .rc файла)

Далее, в программе извлекаем из ресурса, сохраняем на диске, запускаем

CODE

void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *Resu = "EXEFILE";
TResourceStream* Res = new TResourceStream((int)HInstance, "myEXESource", Resu);
Res->SaveToFile("Project1.exe"); // сохраняем на диск
delete Res;
// а можем и запустить
ShellExecute(Handle,"open","project1.exe",NULL,NULL,SW_SHOWNORMAL);
277
11 мая 2012 года
arrjj
1.7K / / 26.01.2011
http://docwiki.embarcadero.com/VCL/2010/en/Registry.TRegistry.GetValueNames

fe

Код:
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
    {
    reg->RootKey = HKEY_LOCAL_MACHINE;
    reg->OpenKey("SOFTWARE\\Mounte\\", true);
    TStrings a;
    reg->GetValueNames(&a);
    for(int x=0;x<a.Count();x+=1)
    {
    ShowMessage(reg->ReadString(a.Strings[x]));
    }
    }
Както так. Нету RAD Studio под рукой проверить.
290
11 мая 2012 года
Patr1ot
458 / / 09.02.2008
Всем спасибо проблема решена.

Есть еще один вопрос. Возможно ли как то, закинуть какую нибудь программу в тело создаваемой программы на билдере, при этом чтобы ее можно было запускать?
277
11 мая 2012 года
arrjj
1.7K / / 26.01.2011
Добавляем exe в ресурсы своей программы. При запуске сохраняем ресурс с exe во временный файл, запускаем его. Погугли - тема не раз поднималась.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог