Альтернатива интерфейсу IApplicationAssociationRegistration в Windows 8, 8.1 и 10 - PullRequest
0 голосов
/ 19 июня 2019

Я новичок в теме.Если что-то выглядит неясным и нуждается в разъяснении, пожалуйста, прокомментируйте, и я постараюсь предоставить более подробную информацию.

Я работал над проектом, который был реализован пару лет назад и нуждается в некоторой настройке, чтобы соответствовать сегодняшним потребностям.

Это приложение Windows для настольных ПК имеет функцию установки приложения по умолчанию, используя несколько методов интерфейса IApplicationAssociationRegistration.

Часть кода:

BOOL CDefaultPrograms::SetActiveSendAllDefaults()
{
    BOOL bRet = FALSE;
    IApplicationAssociationRegistration *pAAR;

    try
    {
        HRESULT hr = CoCreateInstance(
                    CLSID_ApplicationAssociationRegistration,
                    NULL,
                    CLSCTX_INPROC,
                    __uuidof(IApplicationAssociationRegistration),
                    (void**)&pAAR);

        if (SUCCEEDED(hr))
        {
            hr = pAAR->SetAppAsDefaultAll(ACTIVESEND_REGNAME);

            bRet = SUCCEEDED(hr);

            pAAR->Release();
        }
    }
    catch(...)
    {
    }

    return bRet;
}

Согласно документации, эта функция работает только до Windows 8.

image

Вопрос: Какая альтернатива для той же функции для Windows 8+?

1 Ответ

1 голос
/ 19 июня 2019

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

Если вы хотите перейти на недокументированную землю, подключ в ключе Explorer хранит«зашифрованный» прогид по умолчанию для каждого заявленного расширения файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...