灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4405回复:0

[C++技术]用C++,调用浏览器打开一个网页

楼主#
更多 发布于:2013-07-21 12:52
作者:Heaven13483
调用外部命令
 
 
如果用默认浏览器,就调用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("http://www.baidu.com"), NULL, SW_SHOW);
 
如果用IE打开,就调用ShellExecute(NULL, _T("open"), _T("iexplore.exe"), _T("http://www.baidu.com"), NULL, SW_SHOW);//另外网上还有这样的详解可以使用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 启动并显示视窗,如果是最大(小)化,视窗将会还原。第一次运行程式 时应该使用这个值
 
 
 
范例一:开启 http://www.xspace.idv.tw/ 网站
 
view plaincopy to clipboardprint?
 
ShellExecute(Handle, "open", "http://www.xspace.idv.tw/",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:testapp.exe", nil, nil, SW_SHOW);  
 
开启记事本,并开启一个文件(系统能识别记事本应用程式的路径,因此我们不必使用绝对路径)
 
  
 
view plaincopy to clipboardprint?
 
ShellExecute(Handle, "open", "notepad", "c:testreadme.txt", nil, SW_SHOW);  
 
列印一个文档
 
  
 
 
 
ShellExecute(Handle, "print", "c:testtest.doc", nil, nil, SW_SHOW);  
 
   注意:可能你会看到word暂时的被开启,但它会自动关闭。
 
 
 
开启一个HTML页面
 
  
 
 
 
ShellExecute(Handle, "open", "http://www.xspace.idv.tw/", nil, nil, SW_SHOW);  
 
[/codes]
 
 
 
你能通过一个已经注册的文件类型来开启应用程式
 
  
 
 
 
ShellExecute(Handle, "open", "c:testreadme.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);

喜欢0 评分0
游客

返回顶部