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

6
我需要在我的C++程序中使用参数打开磁盘上的html文件,并在默认浏览器中显示。
例如:c:\index.html?id=15。
我使用ShellExecute来打开所有的url或文件,但这个不起作用,它会从本地文件中剥离参数。
ShellExecute(0, NULL, "file:///c:\index.html?id=15", NULL, NULL, SW_SHOWNORMAL);

从命令行打开网页是可以的,即使用以下命令:iexplore file:///c:\index.html?id=15

您如何打开该网页呢?


1
file:// URL 方案不允许使用 HTTP 参数。 - Deanna
3
您可以将 <html><head><meta http-equiv="refresh" content="0;URL='file:///c:\index.html?id=15'"> ... 写入临时文件,然后运行该临时文件。请注意,这仅是一种建议,不会改变原始功能。 - Alex K.
1个回答

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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接