在 Windows 上的默认浏览器中使用参数打开本地 html 文件

Rom*_*man 5 browser windows winapi

我需要在默认浏览器中使用 C++ 程序中的参数打开磁盘上的 html 文件。

例如: c:\index.html?id=15 。

我正在使用 ShellExecute,打开所有 url 或文件,但这个不起作用,它从本地文件中剥离参数。

ShellExecute(0, NULL, "file:///c:\index.html?id=15", NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

它从命令行工作正常,即 iexplore file:///c:\index.html?id=15

我怎样才能打开那个页面?

小智 4

请尝试这段代码。

int result = 0;
TCHAR app[MAX_PATH] = { 0 };

result = (int)::FindExecutable(_T("C:\\index.html"), NULL, app);
if (result > 32) {
  ::ShellExecute(0, NULL, app,
     _T("file:///C:\\index.html?id=15"), NULL, SW_SHOWNORMAL);
}
Run Code Online (Sandbox Code Playgroud)