使用C++在浏览器中打开HTML文件

4
我正在使用Visual Studio编写C++程序,需要创建一个HTML文件并在其中写入数据,然后我希望在浏览器中打开它。目前我能够创建文件并写入内容,但无法打开它,有人可以帮忙吗?
这可能是一个简单的问题,但我只是个初学者。
4个回答

5
#include <windows.h>

void main()
{  
   ShellExecute(NULL, "open", "http://dreamincode.net",
                NULL, NULL, SW_SHOWNORMAL);
}

http://www.dreamincode.net/code/snippet357.htm

您只需用您的html文件的绝对路径替换上面代码中显示的URL。当然,这可以使用变量来完成。

我得到了一些反对票,有人可以解释一下为什么他们认为它应该被反对吗? - Sturm
@uɐɥʇɐᴎ +1,你的回答不应该被贬低。问题在于你不需要写评论,这就是人们随意评论的原因。 - Pranit Kothari
请纠正我,但我认为出于安全原因,一些浏览器会阻止打开本地文件。因此,除非用户已经特别配置了他们的浏览器以允许它,否则我不确定这是否能够保证工作。 - bremen_matt
我该如何让它打开 Google Chrome 标签页而不是 Internet Explorer 的标签页?我需要更改其中一个“NULL”吗?还是它会隐式地在默认浏览器中打开新标签页,因此我需要将默认浏览器从 Internet Explorer 更改为 Chrome? - M.Ionut

2
    void CAboutDlg::OnButton1()
{
    CString strDir;
    char buffer[255];

    GetCurrentDirectory(255, buffer);

    strDir = buffer;

    strDir.TrimRight("\\");
    strDir += "\\";
    strDir += _T("helpindex.html");

    if( 32 >= (int)ShellExecute( NULL, "open", strDir, NULL, NULL, SW_SHOWNORMAL))
    {
        AfxMessageBox("::ShellExecuteFailed"
             " to open this link!");
    }  
}

0

试试这个...对我来说很好用...

#include <windows.h>
void main()
{ 
    LPCTSTR helpFile = "c\help\helpFile.html";
    ShellExecute(NULL, "open", helpFile, NULL, NULL, SW_SHOWNORMAL);
    system("PAUSE");
}

2
虽然这个答案可能是正确和有用的,但最好如果你同时附上一些解释来说明它如何帮助解决问题。如果将来发生了变化(可能与此无关),导致它停止工作并且用户需要理解它曾经是如何工作的,这尤其有用。 - Kevin Brown-Silva

0

如果您正在开发 UWP 应用:

    Windows::System::Launcher::LaunchUriAsync(ref new Uri("https://www.google.com"));

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