在C++ Builder中打开浏览器加载页面
2014-10-29 09:59
267 查看
今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开。这个东东本身很简单哈。在C++ Builder 中有对应的API函数,下面我们一起来讲讲:
调用外部命令
如果用默认浏览器,就调用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://test.com 网站
ShellExecute(Handle, "open", "http://test.com/",nil,nil, SW_SHOWNORMAL);
如果将FileName参数设置为"mailto:"协议格式,那麼该函数将启动预设的邮件用户端程式,
如 Microsoft Outlook(也包括Microsoft Outlook Express)或 Netscape Messanger。
范例二:寄信给 name@126.com (用户帐号@邮件服务器地址)
ShellExecute(Handle, "open"," mailto:name@126.com", nil, nil, SW_SHOWNORMAL);
开启写新邮件视窗,并自动填入收件人位置。
以下在介绍一些不一样的用法:
开始一个新的应用程式
ShellExecute(Handle, "open", "c:\test\app.exe", nil, nil, SW_SHOW);
开启记事本,并开启一个文件(系统能识别记事本应用程式的路径,因此我们不必使用绝对路径)
ShellExecute(Handle, "open", "notepad", "c:\test\readme.txt", nil, SW_SHOW);
ShellExecute(Handle, "print", "c:\test\test.doc", nil, nil, SW_SHOW);
注意:可能你会看到word暂时的被开启,但它会自动关闭。
调用外部命令
如果用默认浏览器,就调用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://test.com 网站
ShellExecute(Handle, "open", "http://test.com/",nil,nil, SW_SHOWNORMAL);
如果将FileName参数设置为"mailto:"协议格式,那麼该函数将启动预设的邮件用户端程式,
如 Microsoft Outlook(也包括Microsoft Outlook Express)或 Netscape Messanger。
范例二:寄信给 name@126.com (用户帐号@邮件服务器地址)
ShellExecute(Handle, "open"," mailto:name@126.com", nil, nil, SW_SHOWNORMAL);
开启写新邮件视窗,并自动填入收件人位置。
以下在介绍一些不一样的用法:
开始一个新的应用程式
ShellExecute(Handle, "open", "c:\test\app.exe", nil, nil, SW_SHOW);
开启记事本,并开启一个文件(系统能识别记事本应用程式的路径,因此我们不必使用绝对路径)
ShellExecute(Handle, "open", "notepad", "c:\test\readme.txt", nil, SW_SHOW);
ShellExecute(Handle, "print", "c:\test\test.doc", nil, nil, SW_SHOW);
注意:可能你会看到word暂时的被开启,但它会自动关闭。
相关文章推荐
- WebView打开网页,设置支持Javascript,浏览的网页后退而不是退出浏览器,判断页面加载过程,缓存的使用
- 浏览器页面中交互控件的自动加载
- VS2005包加载错误,不能打开ASP.NET设计页面
- 在Qt程序中强制S60浏览器打开一个新页面
- 浏览器加载显示html页面内容的顺序
- 浏览器的加载与页面性能优化
- 浏览器的加载与页面性能优化【转】
- 梅花做的当打开页面时提示正在加载例子,很酷哦
- defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
- defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
- 浏览器的加载与页面性能优化
- 加载页面时自动打开另一个新页面的并同时打开一个exe程序
- 页面正在加载中代码(网页打开慢时用)
- //屏蔽掉浏览器状态栏显示真是链接地址。使用此脚本时候,在页面最后面加载
- [求助]有一个页面,在浏览器中查看加载不出来,过会儿就会提示WebDev.WevServer20.exe已停
- 加载页面时打开一个小窗口页面
- 页面第一次打开即给用户异步提示之Asp.net Ajax延迟加载UpdatePanel (转)
- 浏览器打开页面失败的处理
- 提高浏览器加载页面效率的讨论
- defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误