作者:郝峰波

mail : fengbohello@qq.com

本博客地址:http://www.cnblogs.com/fengbohello/p/4374450.html


1、核心函数说明

核心函数:ShellExecute

函数原型如下:

ShellExecute(

  HWND hwnd,           //父窗口句柄 (如:NULL,Handle等)

  LPCSTR lpOperation, //操作类型 (如:"open")*要加英文双引号

  LPCSTR lpFile,           //要进行操作的文件或路径

  LPCSTR lpParameters, //当lpOperation为“explore”时指定要传递的参数,通常设为NULL

  LPCSTR lpDirectory,    //指定默认目录,通常设为NULL

  INT nShowCmd          //文件打开的方式,以通常方式还是最大化或最小化显示,一般为SW_SHOWNORMAL

  ) 

关于ShellExecute函数的详细文档在百度百科 :http://baike.baidu.com/link?url=9Fy8bhOjHzcPPfXYwfvfmal53jmoNHC4pKMdYD7JmD7k5BjdPc4Xu9DAd59U0w_-zlO-R8kc_onFE5LgCFBVTq

以及另一篇博客园博客:http://www.cnblogs.com/xubin0523/archive/2012/11/01/2749729.html


2、程序说明

  1)先读取与程序同目录下的默认文件,sitepage.txt文件,这个文件内容是要打开的网页的地址,每行一个地址。

  2)如果没有默认的文件,就报错

  3)如果想打开非默认的文件,把文件用鼠标拖拽带本程序上即可


3、代码

#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
#include <vector>
#include <string> using namespace std; int loadAddr(vector<string> & vecAddr, string strFileName)
{
if(strFileName.empty())
{
printf("文件 [%s] 不存在\n", strFileName.c_str());
return -;
}
FILE * fp = NULL;
if((fp = fopen(strFileName.c_str(), "r")) == NULL)
{
printf("打开文件[%s]失败,请检查文件是否存在\n", strFileName.c_str());
return -;
}
char szAddr[] = {};
while(fgets(szAddr, , fp))
{
string strAddr = szAddr;
vecAddr.push_back(strAddr);
}
fclose(fp); return ;
} int openPage(vector<string> & vecAddr)
{
int i = ;
int iSize = vecAddr.size();
for(i = ; i < iSize; i++)
{
const char * pAddr = vecAddr[i].c_str();
ShellExecute(NULL, "open", pAddr, NULL, NULL, SW_SHOWNORMAL);
} return ;
} int main(int argc, char * argv[])
{
string strFileName;
if(argc < )
{
strFileName = "sitepage.txt";
}
else
{
strFileName = string(argv[]);
}
vector<string> vecAddr;
if( != loadAddr(vecAddr, strFileName))
{
printf("按下回车(Enter)退出程序\n");
getchar();
return ;
}
if( != openPage(vecAddr))
{
printf("按下回车(Enter)退出程序\n");
getchar();
return ;
} return ;
}

4、程序二进制地址

  百度网盘 :http://pan.baidu.com/s/1CVx4i

使用C语言在windows下一口气打开一批网页的更多相关文章

  1. C语言实现Windows下获取IP和MAC地址。

    C语言实现Windows下获取IP和MAC地址. #include <winsock2.h> #include <stdio.h> #include <stdlib.h& ...

  2. Git - Windows 下, gitbash 打开资源管理器

    1. 概述 windows 下 gitbash 打开 资源管理器 2. 场景 资源管理唤起 gitbash 步骤 进入目录 鼠标右击 在 弹出菜单 中, 找到 Git Bash Here 结果 打开一 ...

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

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

  4. windows下如何打开.sketch的文件

    1 .sketch的文件只能在苹果mac上支持的一种文件格式,现在越来越多的设计师喜欢用.sketch 2 windows下如果想打开.sketch文件,去Microsoft store 找一个Lun ...

  5. go语言执行windows下命令行的方法

    转自:http://www.jb51.net/article/61727.htm 在golang里执行windows下的命令行,例如在golang里面调用 del d:\a.txt 命令 packag ...

  6. 关于windows 下每次打开IE 8都弹出欢迎使用Internet Explorer 8 弹窗的关闭方法

    今天笔者在安装完windows 操作系统后,发现了一个问题,即每次打开IE 8浏览器,都会弹出一个欢迎界面: 弹窗标题为:设置windows Internet Explorer,具体内容如下图所示: ...

  7. windows下怎么打开psql命令

    你是直接执行的psql.exe吧? 那么需要加入数据库位置等一些参数的.Windows系统下,PostgreSQL有提供一个命令行脚本runsql.bat, 在安装目录的scripts文件夹中,一般是 ...

  8. windows 下 gvim打开默认全屏显示

    在_vimrc文件中加入如下配置即可: autocmd GUIEnter * simalt ~x

  9. Go语言学习笔记(一) : 搭建Windows下的Go开发环境

    最近突然对Go语言产生了兴趣,主要是因为在使用python的时候遇到了一些不爽的问题,然后发现了Go.Go是Google出的一个动态语言,语法和C++接近,性能也非常的好,而且还支持编译成exe发布, ...

随机推荐

  1. Visual Studio 2015的Web扩展包

    过去几年,Visual Studio扩展功能生态系统得到了蓬勃发展,社区贡献出了大量优秀的扩展,其中也包括大量针对Web开发的扩展.但是很多时候,感觉寻找.安装.更新好 几个扩展,总显得比较麻烦.如果 ...

  2. 攻城狮在路上(叁)Linux(三十一)--- vim程序编辑器

    本篇主要介绍vim编辑器的使用方式,具体内容后续补充.

  3. csc.rsp Invent by Microshaoft

    # This file contains command-line options that the C# # command line compiler (CSC) will process as ...

  4. Android学习网站

    1 <老罗Android应用开发视频教程> http://www.mobiletrain.org/about/news/android_video2.html

  5. Educational Codeforces Round 3 E. Minimum spanning tree for each edge LCA/(树链剖分+数据结构) + MST

    E. Minimum spanning tree for each edge   Connected undirected weighted graph without self-loops and ...

  6. 【spring 注解 错误】使用controller 作为后台给前台ajax交互数据出错

    controller作为后台与前台的ajax进行交互,后台的方法处理完成返回一个boolean类型的值,想传给前台用来判断是否执行成功,BUT,问题来了: 严重: Servlet.service() ...

  7. 如何将Android Studio项目提交(更新)到github

    转载:http://blog.csdn.net/jinrall/article/details/45787477 前言 在写这篇文章之前首先我假设你已经安装了Android Studio 并已经会用A ...

  8. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位

    android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位   public class FileSizeUtil { public static final int SIZETYPE_B ...

  9. Loadrunner中参数化实战(6)-Random+Each occurrence

    参数化数据30条: 脚本如下,演示登录,投资,退出操作是,打印手机号: 首先验证Vugen中迭代: Random+Each occurrence 设置迭代4次Action 结果如下:

  10. clone github的代码

    终端执行:git clone 连接.git     #不用sudo