Попытка получить путь к веб-браузеру по умолчанию не удалась в Windows 10

Я делаю следующее в установщике моего приложения (обратите внимание, что установщик для этого проекта — просто исполняемый файл Windows (setup.exe) а не MSI.)

Сначала мне нужно было проверить, есть ли ассоциации файлов для .htm а также .html типы файлов. я сделал уже. И затем, если нет никакой связи, мне нужно было добавить их, чтобы их открывал веб-браузер.

Чтобы оказать меньшее влияние на систему пользователя, я подумал о том, чтобы использовать веб-браузер пользователя по умолчанию. Вопрос в том, как найти свой путь?

Итак, я делал это:

//Get default web browser path
WCHAR wbuffPath[MAX_PATH] = {0};
DWORD dwszBuffPath = MAX_PATH;
::AssocQueryStringW(0, ASSOCSTR_EXECUTABLE, L"http", L"open", wbuffPath, &dwszBuffPath);

который, кажется, работает, за исключением того, что когда я запускаю его в Windows 10, я получаю этот путь (когда по умолчанию используется браузер Edge):

C: \ WINDOWS \ system32 \ LaunchWinApp.exe

Так как мне получить сброс параметров для его запуска?

0

Решение

Попробуйте использовать ASSOCSTR_COMMAND вместо ASSOCSTR_EXECUTABLE, Используя ASSOCSTR_EXECUTABLEвы просите просто исполняемый файл сам по себе, который именно то, что вы получаете обратно. ASSOCSTR_COMMAND должен дать вам всю командную строку для исполняемого файла.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]