Мне нужно запустить браузер по умолчанию в Windows с кодом C ++.
Я нашел такой способ: используйте API «AssocQueryString», чтобы найти приложение, которое может открыть файл с расширенным именем файла «html». Он хорошо работает, когда браузером по умолчанию является ie или chrome или .., но если браузером по умолчанию является приложение UWP, такое как «Microsoft Edge», я получаю только «C: \ Windows \ system32 \ LaunchWinApp.exe»
DWORD size = MAX_PATH;
char buff[MAX_PATH];
int err = AssocQueryStringA(ASSOCF_INIT_IGNOREUNKNOWN, ASSOCSTR_EXECUTABLE ".html", NULL, buff, &size);
Итак, есть ли способ запустить браузер UWP по умолчанию?
Я пробовал это
SHELLEXECUTEINFOW sei = { sizeof sei };
sei.lpVerb = L"open";
sei.lpFile = L"microsoft-edge:";
ShellExecuteExW(&sei);
Но я могу запустить код только тогда, когда я знаю, что браузером по умолчанию является Edge, и если браузером по умолчанию является другое приложение UWP, как найти имя для передачи в lpFile?
Итак, есть ли способ запустить браузер по умолчанию, не открывая указанный URL?