【发布时间】:2016-02-07 20:51:00
【问题描述】:
我在我的应用程序的安装程序中执行以下操作(请注意,此项目的安装程序只是一个 Windows 可执行文件 (setup.exe) 而不是 MSI。)
首先我需要检查.htm 和.html 文件类型是否存在文件关联。我did so already。然后,如果没有关联,我需要添加它们以由网络浏览器打开。
为了减少对用户系统的影响,我想使用用户的默认网络浏览器。问题是如何找到它的路径?
所以我这样做了:
//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
那么我该如何重置参数来启动它呢?
【问题讨论】:
标签: c++ windows winapi windows-shell windows-explorer