C++打开一个网页

转载 2015年11月20日 15:54:36
调用外部命令

如果用默认浏览器,就调用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("<a target=_blank href="http://www.baidu.com/" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">http://www.baidu.com</a>"), NULL, SW_SHOW);
如果用IE打开,就调用ShellExecute(NULL, _T("open"), _T("iexplore.exe"), _T("<a target=_blank href="http://www.baidu.com/" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">http://www.baidu.com</a>"), NULL, SW_SHOW);
//另外网上还有这样的详解
<pre name="code" id="best-content-255223954" class="best-text mb-10" style="margin-top:0px; margin-bottom:10px; padding:0px; font-family:arial,'courier new',courier,宋体,monospace; white-space:pre-wrap; word-wrap:break-word; color:rgb(51,51,51); font-size:13.63636302947998px; line-height:23.99147605895996px; background-color:rgb(241,254,221)">可以使用API函数ShellExecute
具体用法可以参考如下:
有三个 Windows API 函数可以运行可执行档WinExec、ShellExecute和CreateProcess。

ShellExecute的功能是运行一个外部程式(或者是开启一个已注册的文件、开启一个目录、列印一个文件等等),并对外部程式有一定的控制。

有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。

函数原型:
HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd );

参数说明: 

hwnd 视窗的名称 (不知道这样解释对不对)
lpOperation 进行的操作,如"open","print","explore"分别对应 "开启","列印","浏览", 也可以为空(""),此时表示进行预设的操作。
lpFile 要操作的文件。
lpParameters 如果lpFile指定的是一个可执行档则表示参数
lpDirectory 操作进行的目录
nShowCmd 新的应用程式的运行方式。其可用的值如下:
SW_HIDE 隐藏
SW_MAXIMIZE 最大化
SW_MINIMIZE 最小化,并把Z order顺序在此视窗之后(即视窗下一层)的视窗启动
SW_RESTORE 启动视窗并还原为初始化大小
SW_SHOW 以当前大小和状态启动视窗
SW_SHOWDEFAULT 以预设方式运行
SW_SHOWMAXIMIZED 启动视窗并最大化
SW_SHOWMINIMIZED 启动视窗并最小化
SW_SHOWMINNOACTIVE 最小化但不改变当前启动的视窗
SW_SHOWNA 以当前状态显示视窗但不改变当前启动的视窗
SW_SHOWNOACTIVATE 以初始化大小显示视窗但不改变当前启动的视窗
SW_SHOWNORMAL 启动并显示视窗,如果是最大(小)化,视窗将会还原。第一次运行程式 时应该使用这个值

范例一:开启 <a target=_blank href="http://www.xspace.idv.tw/" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">http://www.xspace.idv.tw/</a> 网站
view plaincopy to clipboardprint?
ShellExecute(Handle, "open", "<a target=_blank href="http://www.xspace.idv.tw/" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">http://www.xspace.idv.tw/</a>",nil,nil, SW_SHOWNORMAL);  

如果将FileName参数设置为"mailto:"协议格式,那麼该函数将启动预设的邮件用户端程式,
如 Microsoft Outlook(也包括Microsoft Outlook Express)或 Netscape Messanger。

范例二:寄信给 who@xspace.idv.tw (用户帐号@邮件服务器地址)

ShellExecute(Handle, "open"," mailto:who@xspace.idv.tw", nil, nil, SW_SHOWNORMAL);  

开启写新邮件视窗,并自动填入收件人位置。

以下在介绍一些不一样的用法:
开始一个新的应用程式
   

ShellExecute(Handle, "open", "c:\test\app.exe", nil, nil, SW_SHOW);  
开启记事本,并开启一个文件(系统能识别记事本应用程式的路径,因此我们不必使用绝对路径)
   
view plaincopy to clipboardprint?
ShellExecute(Handle, "open", "notepad", "c:\test\readme.txt", nil, SW_SHOW);  
列印一个文档
   

ShellExecute(Handle, "print", "c:\test\test.doc", nil, nil, SW_SHOW);  
   注意:可能你会看到word暂时的被开启,但它会自动关闭。

开启一个HTML页面
   

ShellExecute(Handle, "open", "<a target=_blank href="http://www.xspace.idv.tw/" target="_blank" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">http://www.xspace.idv.tw/</a>", nil, nil, SW_SHOW);  
[/codes]

你能通过一个已经注册的文件类型来开启应用程式
   

ShellExecute(Handle, "open", "c:\test\readme.txt", nil, nil, SW_SHOW);  
用windows Explorer 开启一个目录
   

ShellExecute(Handle, "explore", "c:\windows)", nil, nil, SW_SHOW);  
运行一个DOS命令并立即返回
   

ShellExecute(Handle, "open", "command.com", "/c copy file1.txt file2.txt", nil, SW_SHOW);  
运行一个DOS命令并保持DOS视窗存在
   

ShellExecute(Handle, "open", "command.com", "/k dir", nil, SW_SHOW);

                    

相关文章推荐

C++ 调用默认浏览器 打开指定网址

#include #include #include const TCHAR szOperation[] = _T("open"); const TCHAR szAddress[] = _T(...
  • gdali
  • gdali
  • 2016年08月08日 11:45
  • 2651

MFC C++监听网页窗口的点击超链接跳转问题(即打开新的浏览器窗口)

使用MFC的CHtmlView类,注册ON_EVENT事件进行监听。 实现的基本代码是: BEGIN_EVENTSINK_MAP(CxxxView, CHtmlView) ON_EVENT(Cx...

C/C++在VS2015下使用CURL打开网页GET方式

用到的文件下载地址: // stdafx.cpp : 只包括标准包含文件的源文件 // MFCApplication3.pch 将作为预编译头 // stdafx.obj 将包含预编译类型信息 #i...
  • kupig
  • kupig
  • 2017年01月15日 16:53
  • 1143

C++访问网页

// Post Specified data to web server // By Jim Dai 2011 // buf: content to post // blocksize: blo...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C++写动态网站之HelloWorld!

如何使用C++开发一个最简单的动态网站,打印出Hello World,在Windows的Visual C++ 2008环境下 提供源代码下载...
  • tiplip
  • tiplip
  • 2014年11月06日 11:24
  • 4603

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

用C++,调用浏览器打开一个网页

用默认浏览器,就调用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("http://www.baidu.com"), NULL, SW_...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++打开一个网页
举报原因:
原因补充:

(最多只允许输入30个字)