调用外部命令

如果用默认浏览器,就调用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:\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", "http://www.xspace.idv.tw/", 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++打开浏览器的更多相关文章

  1. windows下不打开浏览器访问网页的方法

    我们打开电脑,大多时候都是打开浏览器在上网.这都是通过浏览器来实现的,然而windows下有没有办法不通过浏览器也可以像linux那样达到访问网页的目的呢?这当然少不了批处理或者VBScript.然而 ...

  2. web工作方式,浏览网页,打开浏览器,输入网址按下回车键,然后会显示出内容,这个过程是怎样的呢?

    以下内容摘自<Go Web编程>,介绍的通俗易懂. 我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容.在这个看似简单的用户行为背后,到底隐藏了些什 ...

  3. vue-cli2.9.1如何自动打开浏览器及实现手机调试

    在vue-cli2.9.1以前我们运行 "npm run dev" 程序会自动打开浏览器进行调试,而且在手机浏览器输入 "IP地址:8080" 能实现在手机端的 ...

  4. Sublime Text3—设置快捷键打开浏览器

    在不同浏览器查看代码效果可谓是家常便饭,所以用不同快捷键对应打开不同浏览器可以大大提高工作效率. 本篇分享个简单的方法只需二步: 一.安装插件SideBarEnhancements ctrl+shif ...

  5. vue中npm run dev运行项目自动打开浏览器

    npm run dev运行项目自动打开浏览器设置自动打开浏览器 // 各种设备设置信息      host: 'localhost', //主机名      port: 8080, // 端口号(默认 ...

  6. webpack之带有可自动打开浏览器及热重载的基本配置

    什么是Webpack WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并 ...

  7. python 打开浏览器的方法 Python打开默认浏览器

    一.python 打开浏览器的方法: . startfile方法(打开指定浏览器) import os os.startfile("C:\Program Files\internet exp ...

  8. selenium自动化打开浏览器不受信任解决办法

    之前在用selenium(火狐浏览器)打开一个https网站时,总是弹出不受信任,修改配置后,每次加载的浏览器都是还原了配置,无法加载出页面,这里给出解决办法:让浏览器去加载我们修改后的配置,具体如下 ...

  9. C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站

    简介Internet Explorer对象模型 1.属性 属性 类型 描述 Application Object 返回对Internet Explorer对象的引用. Busy Boolean 返回一 ...

  10. Sublime 汉化、快捷键打开浏览器

    Sublime 是一个优秀的代码编译工具,它具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等.不仅如此,它还可自定义按键绑定,菜单和工具栏.由于是歪果仁开发的,所以官方版 ...

随机推荐

  1. app活动页面上的痛点

    app项目上需要做一个小的活动,先看下页面布局 需求是这5个板块逐个展示,展示一块的时候,页面整体向上滚动一定的距离. 刚开始考虑的时候,是准备依赖css3属性的transition实现的,包括顺序延 ...

  2. 链接的热键属性accesskey

    <a href="" accesskey="h"></a> 意思是按住Alt键+h,再按enter键就可以直接链接到HTML的目标网址中 ...

  3. node-webkit 桌面开发 初入1

    node-webkit  是什么就不介绍了 注意官网的一句话 ”node-webkit is based on Chromium and node.js " 所以node-webkit 实际 ...

  4. JMS

    发消息 与 收消息 http://www.huaishao8.com/config/activemq/143.html http://yingzhuo.iteye.com/blog/1566612 h ...

  5. C++中为什么要将析构函数定义成虚函数

    构造函数不可以是虚函数的,这个很显然,毕竟虚函数都对应一个虚函数表,虚函数表是存在对象内存空间的,如果构造函数是虚的,就需要一个虚函数表来调用,但是类还没实例化没有内存空间就没有虚函数表,这根本就是个 ...

  6. zookeeper+jstorm的集群搭建

    zookeeper的配置: zookeeper有三种配置方式:单机式/伪分布式/集群式 其中伪分布式是在一台电脑上通过不同的端口来模拟分布式情形,需要N份配置文件和启动程序,而集群式是多个zookee ...

  7. Qt容器类——1. QList类、QLinkedList类和QVector类

    在开发一个较高性能需求的应用程序时,程序员会比较关注这些容器类的运行效率,表2.1列出了QList.QLinkedList和QVector容器的时间复杂度比较. 1.QList类 QList<T ...

  8. docker在centos7下的一些坑

    在centos的docker上安装mysql提示chown mod /var/lib/mysql permission denied,通过下面的方法1解决. 在centos上挂载数据卷,在容器内部访问 ...

  9. Swift:闭包

    一.闭包的介绍 闭包表达式(Closure Expressions) 尾随闭包(Trailing Closures) 值捕获(Capturing Values) 闭包是引用类型(Closures Ar ...

  10. shell面试题目总结

    1.如何理解shell脚本中第一行#!/bin/sh #!为特殊的表示符,其后是解释此脚本的shell的路径.此脚本使用/bin/sh进行解释执行. 2.如何向脚本传递参数. 脚本名字 参数1 参数2 ...