调用外部命令

如果用默认浏览器,就调用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. Qt动画效果展示(文艺IT男)

    该程序使用应用程序单窗口,主窗口继承于QMainWindow:主窗口有5个QToolButton部件(窗口底部的四个以及窗口中央的一个),单击窗口底部的QToolButton部件可以使窗口中央的那个Q ...

  2. JMeter学习-033-JMeter BeanShell 脚本应用实例之参数变量修改

    BeanShell脚本是JMeter自动化测试过程中不可或缺的提升技能之一,BeanShell脚本编写类似于Java脚本.它可以获取.修改系统定义或用户定义的变量值,同时也可以进行一些相应的测试数据处 ...

  3. PorterDuffXfermode的用法

    1.下面的Xfermode子类可以改变这种行为: AvoidXfermode  指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图). PixelXorXfermode  当覆盖 ...

  4. sql之连表查询--效率 通过分析各种连接查询的实现原理来了解

    1. 左连接 2.右连接 3.内连接 4.Cross join 笛卡尔乘积

  5. iOS,信息加解密

    1.AES加解密 AES加解密 // //  AESEncryptAndDecrypt.h //  NSData扩展方法,用于处理aes加解密 // //  Created by Vie on 16/ ...

  6. Hive:Spark中如何实现将rdd结果插入到hive1.3.0表中

    DataFrame写入hive API: registerTempTable函数是创建spark临时表 insertInto函数是向表中写入数据,可以看出此函数不能指定数据库和分区等信息,不可以直接进 ...

  7. LL基本姿势

    在说怎么练习之前,先说说LL这个游戏里面的一些基本概念: 谱面元素(element) 谱面由一个个的音符组成,在LL中,音符(Note)分以下三类: 单点(下简称S,Single),同一时刻只有一个圆 ...

  8. 转载 wpf使用经验

    转载自 胡庆访[ http://zgynhqf.cnblogs.com/ ] WPF 是一个界面层框架技术,要对 WPF 技术达到熟练运用的程度,需要同时拥有开发和设计两方面的知识.而我作为一名开发人 ...

  9. EBS报表参数间的关联性的设置

    如果想在提交报表请求时根据参数一的值来设置参数二对应的值集,则在参数二的值集设定中的where clause加入:FEFX.参数二的值集名称.例如:参数一名称为inventory_item_id,参数 ...

  10. github创建文件夹

      网页上只能通过在创建新文件的时候顺便创建文件夹(文件夹与文件用 / 隔开),例如home/test.md就在该仓库下创建了一个文件夹home,该文件夹下有一个新的文件test.md