【前言】工作或学习中可能需要实现基于VC读\写Excel文件的功能,本人最近也遇到了该问题。
中间虽经波折,但是最终还是找到了解决问题的办法。
在此跟大家分享,希望对跟我同样迷茫过的同学们有所帮助。
1、程序功能1)打开一个excel文件;2)显示到CListCtrl上;3)新建一个Excel文件。
以上均在对话框中实现。
2、平台VC++20103、实现方法常用的Excel打开方式有两种1)通过数据库打开;2)OLE方式打开。
由于方式1)操作繁琐,经常出现莫名的错误,这里选用方式2).4、准备步骤首先新建一个Dialog窗体程序,添加listcontrol和两个按钮1)将ExcelLib文件夹拷贝到程序目录下;
2)将Export2Excel.h,Export2Excel.cpp两个文件添加到项目;
3)包含头文件,#include"ExcelLib/Export2Excel.h"通过以上步骤在程序中引入了可以读取Excle文件的CExport2Excel类;
5、打开excel文件通过按钮点击打开voidCExcelTestDlg::OnBnClickedButtonOpenExcel(){//获取文件路径CFileDialog*lpszOpenFile;CStringszGetName;lpszOpenFile=newCFileDialog(TRUE,"","",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"ExcelFile(*.xlsx;*.xls)|*.xls;*.xlsx",NULL);if(lpszOpenFile->DoModal()==IDOK){szGetName=lpszOpenFile->GetPathName();SetWindowText(szGetName);deletelpszOpenFile;}elsereturn;//打开文件//文件中包含多个sheet时,默认打开第一个sheetCExport2ExcelExcel_example;Excel_example.OpenExcel(szGetName);//获取sheet个数intiSheetNum=Excel_example.GetSheetsNumber();//获取已使用表格行列数intiRows=Excel_example.GetRowCount();intiCols=Excel_example.GetColCount();//获取单元格的内容CStringcs_temp=Excel_example.GetText(1,1);//AfxMessageBox(cs_temp);//Listcontrol上显示//获取工作表列名(第一行)CStringArraym_HeadName;m_HeadName.Add(_T("ID"));for(inti=1;iGetItemCount()>0){m_list.DeleteColumn(0);}//初始化ClistCtrl,加入列名InitList(m_list,m_HeadName);//填入内容//第一行是标题,所以从第2行开始CStringnum;intpos;for(introw=2;row<=iRows;row++){pos=m_list.GetItemCount();num.Format(_T("%d"),pos+1);m_list.InsertItem(pos,num);for(intcolum=1;colum<=iCols;colum++){//插入均从序号0开始m_list.SetItemText(pos,colum,Excel_e
2025/11/15 14:25:49 281KB VC++ Excel OLE VS2010
1
由于工作需要重复地把序列图放到各个帧上,于是便做了这个自动化脚本,希望帮到有需要的人。
描述:该脚本会自动把库中的序列图或者mc分散到序列帧上,并且新建图层。
适用版本:flashcs6用法:1.把脚本放到C:\Users\lenoo\AppData\Local\Adobe\FlashCS6\zh_CN\Configuration\Commands下面;
2.重启flash;
3.打开一个fla文件;
4.导入序列图;
5.在库中选中刚才导入的序列图;
6.选择菜单-命令-Sortframesinlayers;
7.可以看到时间轴中新建了一个图层,并且排好了图片。
2025/11/4 13:24:54 1KB flash命令 jsfl 序列图
1
unlocker208是使用VMware安装MacOS的必备补丁,亲测可用,详情参阅压缩包内有readme。
VMware安装MacOS的流程:===============================================1.安装VMwareStationPro12.02.将Unlocker解压,右击win-install.cmd,选择“以管理员身份运行”3.为MacOS新建虚拟机,注意一定要下载懒人版安装包,格式为ISO或CDR4.新建完虚拟机之后,“开启此虚拟机”,VMWare会报错。
这是因为虚拟机的隐藏参数设置错误,你要手动修改:打开虚拟机所在文件夹,找到.vmx文件,右键使用其他程序打开,并选择记事本,在文件最后添加:smc.version="0"并保存。
=================================================MacOSXUnlockerforVMwareV2.0=================================1.Introduction---------------Unlocker2isdesignedforWorkstation11,Player7,ESXi6andFusion7.IfyouareusinganearlierproductpleasecontinueusingUnlocker1Version2hasbeentestedagainst:*Workstation11/12onWindowsandLinux*Player7&WorkstationPlayer12onWindowsandLinux*Fusion7/8onMavericksandYosemite*ESXi6.0Thepatchcodecarriesoutthefollowingmodificationsdependentontheproductbeingpatched:*Fixvmware-vmxandderivativestoallowMacOSXtoboot*Fixvmwarebase.dllor.sotoallowAppletobeselectedduringVMcreation*Fixlibvmkctl.soonESXi6toallowusewithvCenter*DownloadacopyofthelatestVMwareToolsforOSXNotethatnotallproductsrecognisethedarwin.isoviainstalltoolsmenuitem.Youwillhavetomanuallymountthedarwin.isoforexampleonWorkstation11andPlayer7.ThevmwarebasecodedoesnotneedtobepatchedonOSXorESXisoyouwillseeamessageonthosesystemstellingyouthatitwillnotbepatched.InallcasesmakesureVMwareisnotrunning,andanybackgroundguestshavebeenshutdown.ThecodeisnowPythonasitmakestheUnlockereasiertorunandmaintainonESXi.TherearesomechallengestowritethecodeasESXihasasubsetofPython2.7whichconstrainssomemodulesthatcanbeused.2.Prerequisites----------------ThecoderequiresPython2.7towork.MostLinuxdistros,ESXiandOSXshipwithacompatiblePythoninterpreterandshouldworkwith
2025/10/31 2:07:25 9.61MB unlocker208 VMware
1
笔者曾混迹过各种攻防演练活动,参与过防守方、攻击方,也算是大概了解了每一个队伍的任务~参加防守时印象尤为深刻,也跟一起防守的“战友”做过有趣的事情,例如:反打攻击队;
题外话说的有点多了,来说说为什么开发这样一个平台:作为一个防守方光看日志固然是枯燥无味的,偶尔来几次反向打击啥的,增添防守的乐趣~所以我想到了做这样一个系统,就是想在“空暇”时间能获取点“黑客攻击者”的“画像”。
本平台采用被动式的方式分析黑客攻击者画像,可扩展赋能蜜罐以及安全设备,将平台接口部署在蜜罐Web界面上即可,当攻击者访问所部署的Web界面即触发平台分析功能,对访问者进行分析,数据回传平台分析其网络身份、IP、IP定位:物理地址等信息。
AHRID信息展示平台支持接口授权的方式授权站点,已授权站点才可使用平台接口进行被动式的攻击者画像分析以及数据回传。
AHRID接口授权平台的分析功能采用模块化设计,可针对不同的分析功能新建不同的分析模块进而让平台的分析功能更加丰富完善(开源版本目前只支持JSONP探针模块)AHRID提交模块AHRID开源版使用授权使用登录进AHRID平台之后需要先添加接口授权:AHRID接口授权当添加完毕后,复制接口代码至蜜罐页面或需监测的页面中即可(建议复制到最后),这样就已经部署成功了,只需要等待攻击者触发数据回传功能,等待画像信息即可。
模块提交当已经发现一个JSONP劫持漏洞时,即可提交到AHRID平台上:JSONP劫持漏洞漏洞地址:http://my.website/dorabox/csrf/jsonp.php?callback=test要获取的信息:username模块提交说明:1.名字模块名字(建议使用英文)2.SRC存在JSONP劫持漏洞的URL地址3.回调参数值回调参数的值(参数=值)4.数据字段JSON字段(例如:{"username":"123"},要获取的是username即填写username;
例如:{"data":{"uid":"123"}},要获取的是uid即填写data.uid)5.信息展示地址一般填写无或者随意填写6.模块描述根据模块功能说明AHRID模块提交示例AHRID开源版设计概述当攻击者访问到部署了AHRID接口的页面,即触发JSONP探针获取攻击者已登录状态下的登录信息,回传登录信息+IP+UA,后端会对IP进行物理地址转换,最终将数据记录到数据库。
数据库结构表:Admin-列:id,username,password表:Hackinfo-列:hid,host,ip,user_agent,jsondata,creaye_time,times表:Plugins-列:pid,name,src,callback,columns,url,commit表:Apis-列:aid,hostIP地址转换依赖:GeoLite2-City.mmdbIP定位依赖:接口apis.map.qq.com、way.jd.com+取中心点依赖环境:Python2+Flask+Mysql所需网络环境:互联网(可出网)AHRID开源版搭建1.config.py配置文件修改需要配置的信息如下:USERNAME:Mysql用户名PASSWORD:Mysql用户密码HOST:Mysql主机地址PORT:Mysql端口SECRET_KEY:SESSION秘钥(建议16位以上随机英文字母+数字+特殊符号)TX_KEYS:腾讯接口KEYS(2个以上,参考:https://lbs.qq.com/webservice_v1/guide-ip.html)JCLOUD_KEY:京东云接口KEY(Github可白嫖)2.Mysql创建“ahrid”数据库3.执行如下代码pythonmanage.pydbinitpythonmanage.pydbmigrate4.启动服务:sudopythonapp.py默认端口为:80,可自行修改app.py文件如下代码部分server=pywsgi.WSGIServer(('0.0.0.0',80),app)
2025/10/29 11:37:37 57.82MB 威胁情报 黑产对抗 网络安全 信息安全
1
某企业计划建设自己的企业园区网络,希望通过这个新建的网络,提供一个安全、可靠、可扩展、高效的网络环境,将两个办公地点连接到一起,使企业内能够方便快捷的实现网络资源共享、全网接入Internet等目标,同时实现公司内部的信息保密隔离,以及对于公网的安全访问
2025/10/28 9:53:30 467KB 计算机网络
1
使用Arcgis批量进行拓扑错误检查
1
WindowsServer2016(或者win10)系统本身不包含.netframework3.5,所以安装IIS相关内容(自动包括net3.5)的时候,会报错提示找不到源。
方法:在程序和功能下,选择添加角色功能,指定备用源路径(新建sxs文件夹,将附件放到里边即可)
2025/10/10 5:55:49 10MB sxs
1
软件运行环境:操作系统:windowsserver2008R2企业版64位或以上版本数据库:MicrosoftSQLServer2008.NET:4.0部署文件安装注意事项:1.网站文件加要添加上传权限,添加NETWORKSERVICE和IIS_IUSRS,设置完全控制。
1.应用程序池设置兼容32位应用程序,设置经典模式。
2.数据库连接配置正确3.DB.config主域配置一定要正确,否则学员无法登录,例如网址是k12.weisha100.net,addnane哪里就填weisha100.net,如果是用ip访问,主域哪里填ip。
不用带端口。
数据库脚本执行注意事项:1.新建的数据库名称要和脚本里的名称保持一致。
(或者修改脚本里的名称。
只要保持一致即可)2.数据库要允许server身份登录。
3.如果使用sa登录,要启用sa用户。
详细的安装教程可登录www.weisha100.net注册观看详细的视频教程。
网站初始管理信息:管理员入口:网址/admin/index.ashx账户:song密码:1学员入口:网址/student/index.ashx账户:13223040250密码:1同教师账户(学员和教师管理员后台可以添加初始账户可以删除)超管入口:网址/manage/index.aspx账户:admin密码:1(超管主要负责资金及第三方相关接口,不要随意配置里面得权限及管理员分组)操作手册下载地址:http://vido.weisha100.net/使用手册.rar源码下载地址:GitHub开源地址:https://github.com/weishakeji/LearningSystem技术支持:1558453748电话:15660957178
2025/10/5 4:13:45 127.92MB 源码
1
程序中的mywidget.cpp使用的QwtPlot控件实现的是:曲线1,2利用随机数和定时器实现动态绘制,不同的是绘制时数据源和坐标轴。
曲线2的坐标轴跟随系统时间变化。
此外还实现图例控制曲线的显示和鼠标左键放大绘图/右键恢复绘图。
plot.cpp为新建一个C++类,基类QwtPlot,类型信息:继承QWidget实现:3条曲线的绘制(曲线3是动态的),通过控制图例实现不同曲线的显示。
此外还是先鼠标左键移动图,鼠标右键和滑动放大/缩小绘图。
2025/9/27 3:22:27 9KB Qwt Qt 动态绘图
1
大地电磁一维正演MATLAB程序,亲测可用保存数据需要在f盘新建mt1d文件夹
2025/9/18 7:22:44 4KB 大地电磁 一维正演
1
共 400 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡