AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.10.2013, 06:31   #1  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Value веток реестра
Хочу получить список установленных программ, руководствуюсь http://it-talk.org/topic10081.html

Никак не получается получить именно Value строки DisplayName(как в примере), да и собственно любой другой тоже.

X++:
    #WinAPI
    int         key, i;
    container   c;
    ;

    key = WinAPI::regOpenKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", #KEY_READ);

    if (key)
    {
        while (WinAPI::regEnumKey(key,i))
        {
            //if (WinAPI::regEnumKey(key,i) == "{29E5EA97-5F74-4A57-B8B2-D4F169117183}")
            {
                info(strfmt("%1: %2", i, WinAPI::regEnumKey(key,i)));

                //c = WinAPI::regGetValue(key,'');
                c = WinAPI::regGetValue(key,'DisplayName');
                info(con2str(c));

                c = WinAPI::regEnumValue(key,i);
                info(con2str(c));
            }

            i++;
        }

        WinAPI::regCloseKey(key);
        info("Ключ найден");
    }
    else
    {
        warning("Ключа нет");
    }
Старый 16.10.2013, 09:26   #2  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Видимо, надо брать значение из вложенного ключа. Попробуйте так:
X++:
    #WinAPI
    int         key, subKey, i;
    container   c;
    ;

    key = WinAPI::regOpenKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", #KEY_READ);

    if (key)
    {
        while (WinAPI::regEnumKey(key,i))
        {
            //if (WinAPI::regEnumKey(key,i) == "{29E5EA97-5F74-4A57-B8B2-D4F169117183}")
            {
                info(strfmt("%1: %2", i, WinAPI::regEnumKey(key,i)));
                subKey = WinAPI::regOpenKey(key, WinAPI::regEnumKey(key, i), #KEY_READ);

                c = WinAPI::regGetValue(subKey,'DisplayName');
                info(con2str(c));
            }

            i++;
        }

        WinAPI::regCloseKey(key);
        info("Ключ найден");
    }
    else
    {
        warning("Ключа нет");
    }
__________________
Кононов Пётр
За это сообщение автора поблагодарили: Player1 (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выбор родительских веток в Tree в лукап-форме Eldar9x DAX: Программирование 4 06.12.2012 15:29

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.