使用C语言在windows下一口气打开一批网页
本博客地址: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 -1; } FILE * fp = NULL; if((fp = fopen(strFileName.c_str(), "r")) == NULL) { printf("打开文件[%s]失败,请检查文件是否存在\n", strFileName.c_str()); return -1; } char szAddr[1024] = {0}; while(fgets(szAddr, 1023, fp)) { string strAddr = szAddr; vecAddr.push_back(strAddr); } fclose(fp); return 0; } int openPage(vector<string> & vecAddr) { int i = 0; int iSize = vecAddr.size(); for(i = 0; i < iSize; i++) { const char * pAddr = vecAddr[i].c_str(); ShellExecute(NULL, "open", pAddr, NULL, NULL, SW_SHOWNORMAL); } return 0; } int main(int argc, char * argv[]) { string strFileName; if(argc < 2) { strFileName = "sitepage.txt"; } else { strFileName = string(argv[1]); } vector<string> vecAddr; if(0 != loadAddr(vecAddr, strFileName)) { printf("按下回车(Enter)退出程序\n"); getchar(); return 0; } if(0 != openPage(vecAddr)) { printf("按下回车(Enter)退出程序\n"); getchar(); return 0; } return 0; }
4、程序二进制地址
百度网盘 :http://pan.baidu.com/s/1CVx4i
作 者:fengbohello
个人网站:http://www.fengbohello.top/
E-mail : fengbohello@foxmail.com
欢迎转载,转载请注明作者和出处。
因作者水平有限,不免出现遗漏和错误。希望热心的同学能够帮我指出来,我会尽快修改。愿大家共同进步,阿里嘎多~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!