我需要使用c ++代码在Windows上启动默认浏览器。
我已经找到这种方式:使用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的名称?
那么,有没有办法在不打开指定网址的情况下启动默认浏览器?