当前位置: 首页 > news >正文

2601C++,复制超文本格式

超文本剪切板格式

超文本有自己的剪切板格式(叫超文本格式(CF_HTML),可用来向其他应用助手(如Excel,Word或其他办公应用复制)提供数据.

CF_HTML是包含说明,环境和该环境中的片段完全基于文本的格式.生成要发送到剪切板的数据时,必须包含数据说明,以指示剪切板版本及环境和片段的偏移.
计算偏移可能是难点.但是,可如下简化此任务.

代码示例

//`CopyHtml()`,在`剪切板`上复制`超文本`.提供了`HTML/BODY`空白,所以只需像`CallHtml("<b>Thisisatest</b>"); `这样调用voidCopyHTML(char*html){//为`超文本`头创建一个`临时缓冲`...char*buf=newchar[400+strlen(html)];if(!buf)return;//取`剪切板``ID`以取`超文本`格式...staticintcfid=0;if(!cfid)cfid=RegisterClipboardFormat("HTML Format");//为`超文本`头创建一个模板串...strcpy(buf,"Version:0.9\r\n""StartHTML:00000000\r\n""EndHTML:00000000\r\n""StartFragment:00000000\r\n""EndFragment:00000000\r\n""<html><body>\r\n""<!-StartFragment -->\r\n");//附加`超文本`...strcat(buf,html);strcat(buf,"\r\n");//完成`超文本`格式...strcat(buf,"<!-EndFragment-->\r\n""</body>\r\n""</html>");//现在回来计算所有长度,并写必要的`头`信息.注意,`wsprintf()`在你覆盖串时会截断它,所以你会用用`'\r'`代码替换结尾的0...char*ptr=strstr(buf,"StartHTML");wsprintf(ptr+10,"%08u",strstr(buf,"<html>")-buf);*(ptr+10+8)='\r';ptr=strstr(buf,"EndHTML");wsprintf(ptr+8,"%08u",strlen(buf));*(ptr+8+8)='\r';ptr=strstr(buf,"StartFragment");wsprintf(ptr+14,"%08u",strstr(buf,"<!-StartFrag")-buf);*(ptr+14+8)='\r';ptr=strstr(buf,"EndFragment");wsprintf(ptr+12,"%08u",strstr(buf,"<!-EndFrag")-buf);*(ptr+12+8)='\r';//现在已准备好`所有东西`,可在`剪切板`上放置东西了.打开`剪切板`...if(OpenClipboard(0)){//清空里面...EmptyClipboard();//分配全局内存传输...HGLOBAL hText=GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,strlen(buf)+4);//把你的串放进全局内存...char*ptr=(char*)GlobalLock(hText);strcpy(ptr,buf);GlobalUnlock(hText);::SetClipboardData(cfid,hText);CloseClipboard();//释放内存...GlobalFree(hText);}//清理...delete[]buf;}

使用此函数,在剪切板中复制超文本代码,可如下:

char*html="<b>This is a test</b><hr>""<li>entry 1""<li>entry 2";CopyHTML(html);

细节

使用向剪切板发送超文本代码的方法,可能自动化办公的客户特别有利.
如,如果你的自动化客户需要为Excel中的单元格中的段生成格式化数据,则可在超文本代码中生成数据,把它发送到剪切板,然后把它粘贴到应用中.

http://www.jsqmd.com/news/328025/

相关文章:

  • 2601,写个kde语法高亮文件
  • 2026年SPC蜂窝铝整板生产商深度评测:谁才是性价比之王?
  • 驻马店全铝焊接大板企业如何选?2026年开年深度观察
  • 驻马店全铝阳台柜选购指南:2026年头部厂商深度解析与推荐
  • 算法题-03
  • OTG数据充电交互讲解
  • LDR系列PD应用方案讲解之OTG边听边充边传数据边投屏多合一应用
  • Type-c OTG数据与充电如何进行交互使用应用讲解
  • 大规模语言模型的反事实推理在政策模拟与评估中的多维度应用
  • Issacsim探索——Day1-云服务器一键启动
  • Java语言提供了八种基本类型【函数红色的1】
  • Java全栈开发工程师面试实录:从基础到高阶技术深度解析
  • 2026年武汉市政工程施工服务商价格解析与优质厂商推荐
  • 超越加速:AI编程如何成为开发者能力的“无限杠杆”?
  • 寻找差异表达基因,进行富集分析
  • 前后端分离Spring Boot疗养院管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • Linux 系统下 Oracle AI Database 26ai 环境部署全解析
  • 企业级+乡政府管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 从数据孤岛到数据中台:企业大数据整合方案详解
  • Medusa 智能合约 Fuzzing 工具全流程使用教程
  • 前后端分离青年公寓服务平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • AI Agent的跨域任务泛化能力开发
  • 前后端分离高校教师电子名片系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 企业级Spring Boot企业员工薪酬关系系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 企业级Spring Boot在线远程考试系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 2026年唐山地区选煤设备实力厂商综合观察与推荐
  • 前后端分离经方药食两用服务平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • SpringBoot+Vue 房屋交易平台平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 企业级房屋交易平台管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • SpringBoot+Vue 经方药食两用服务平台平台完整项目源码+SQL脚本+接口文档【Java Web毕设】