您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
剪贴板是什么(剪贴板Clipboard是什么)
剪贴板,数据,教程剪贴板是什么(剪贴板Clipboard是什么)
发布时间:2020-12-06加入收藏来源:互联网点击:
什么是剪贴板(什么是剪贴板)大家好。今天我们将在“VBA信息获取与处理”课程第十一题“剪贴板在VBA的应用”第一节讲解什么是剪贴板。这个题目是非常有用的知识点。希望你能掌握并利用它。
大家好,在之前的专题讲座中,我们曾经讲过一个关于从网络中抓取数据的细节,就是先把数据放到剪贴板上,然后再粘贴到工作表中。可以看一下data 006 worksheet.xlsm。
Sub CopyToClipbox中的程序内容,那么什么是剪贴板,使用它有什么好处?对于VBA的操作来说,这个知识点有哪些方便性和独特性?我们将解释这个话题。
我们平时操作文件的时候经常会用到Ctrl C/X和Ctrl V的操作,就是把需要的内容复制下来,然后粘贴到需要的地方。这种操作符合人的感性认识。其实这个动作是先把内容放到剪贴板,也就是专用内存,但是这个操作是在后台完成的,我们只是没看到而已。
在Windows的帮助文件中指出,剪贴板是一个临时存储区域,用于存储从一个地方复制或移动并打算在其他地方使用的信息。您可以选择文本或图形,然后使用“剪切”或“复制”命令将所选内容移动到剪贴板,它将存储在剪贴板中,直到使用“粘贴”命令将它插入到其他地方。例如,您可能想要复制网站上的部分文本,然后将其粘贴到电子邮件中。
对于VBA,MSForms库包含一个名为DataObject的对象,该对象支持在Windows剪贴板上使用文本字符串。VBA不支持剪贴板上其他非文本值所需的数据类型。若要在代码中使用数据对象,必须设置对Forms 2.0对象库的引用。添加VBA的参考,如下所示:
转到VBA编辑器中的工具菜单,然后选择引用项。在出现的对话框中,向下滚动列表,直到找到适当的库(常见参考列在列表的顶部,之后,参考按字母顺序列出)。当您找到代码所需的引用时,请选中引用标题旁边的复选框,然后单击“确定”。
这个物体的特征是什么,它是如何工作的?
OpenClipboard中的数据存储在全局内存中,因此大多数windows应用程序都可以访问这些数据。在遵守相关API函数的前提下,应用程序可以自由打开剪贴板,读取剪贴板中的数据(GetClipboardData),或者清空剪贴板(EmptyClipboard)。然后设置剪贴板中的数据(SetClipboardData),最后关闭剪贴板(close clipboard);
2)排他性Windows规定应用程序对剪贴板的访问是排他性的。应用程序使用OpenClipboard打开剪贴板后,其他程序无法再次访问剪贴板,直到前一个程序使用CloseClipboard关闭剪贴板。通常情况下,我们在使用剪贴板时,不会感觉到受到其他程序的影响。这是因为剪贴板中的数据操作都是在内存中进行的,速度非常快。对于超大数据,应用还可以选择延迟渲染机制来保证速度。但是在编写剪贴板的时候要注意:每次使用剪贴板之后一定要记得使用CloseClipBoard将其关闭;不要把耗时的代码放在OpenClipboard和CloseClipboard之间,以免影响其他程序的正常工作。
3)将剪贴板中的数据标准化的应用窗口称为剪贴板数据所有者,其句柄可以通过ClipboardOwner函数获得。相反,如果一个应用程序想把数据放入剪贴板,它首先需要成为剪贴板的所有者。要成为ClipboardOwner,程序需要首先将自己的句柄传递给OpenClipboard函数。如果剪贴板中已经有数据,则需要调用EmptyClipboard首先。
4)多种格式的数据可以同时存储在多个剪贴板中,并且它们被放置在全局存储器中的不同位置;剪贴板中的数据包括标准/预定义的格式,如文本、位图、Wav声音,以及非标准/用户定义的格式,如word中的字段和公式以及Excel中的图表。
5)可检索性对于剪贴板中存储的每种格式,Windows都会给它分配一个唯一的长整数,通过它可以知道对应的数据格式的名称(GetClipboardFormatName),或者查询剪贴板中是否存在对应的数据(
IsClipBoardFormatAvailable),如果存在的话,也可以通过这个数字找到相应数据在内存中存储的位置(GetClipboardData)。
对于标准格式,这个数字是固定的,可以通过VB6自带的APIViewer查询以CF_开头的常量来获得,比如:
公共常数CF_TEXT=1
公共常量CF_BITMAP=2
公共常量CF_METAFILEPICT=3
公共常数CF_SYLK=4
……
对于非标准格式,该数字由提供该格式数据的应用程序定义。
名称,然后将此名称传递给RegisterClipboardFormat函数,如果此名称已经存在,函数将返回此名称对应的编号,如果此名称不存在,函数将返回一个之前未使用的编号,在系统关机重启之前,这个名称和编号可以一直使用下去。6)可监视性有一组特别的窗口可以持续监视剪贴板内的数据变化,这组窗口被称作剪贴板观察程序(ClipboardViewer),由它们构成的这个小圈子叫作剪贴板观察程序链ClipBoardViewerChain,每当剪贴板内数据发生变化时,windows将向消息链中的第一个窗口发送一个WM_DRAWCLIPBOARD消息,再由它转发给第二个……直至消息到达消息链中的最后一个窗口。同样,当消息链中的成员发生变化时,每个窗口都会收到一个WM_CHANGECBCHAIN消息;通过SetClipboardViewer函数,应用程序可以将自己的窗口句柄告诉windows,从而注册成为剪贴板观察程序链中的一员;通过ChangeClipboardChain函数,应用程序可以退出剪贴板观察程序链,而不影响它后面的窗口继续接收相关消息。
这讲我简单地介绍了一些剪切板相关的知识,对于大家掌握和利用这个知识点是十分有益的。其实不仅是对于VBA的理解,对于其他的语言也都大体一致。因为我参考的都是权威的论述。
从上面的分析我们可以得到下面的结论,剪贴板可用于存储文本和图像等数据。由于所有活动进程都共享剪贴板,因此它可用于在这些活动进程之间传输数据。使用 Clipboard 对象可轻松访问剪贴板并从中读取和向其写入数据。我们可以利用的操作有:从剪贴板读取数据;确定存储在剪贴板中的文件类型;清除剪贴板的数据;将数据写入剪贴板。
本节知识点回向:
1 什么是剪贴板?
② 剪贴板的特点是什么?
③ 剪贴板的操作有哪些?
在我的系列书籍中一直在强调”搭积木”的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵:
1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。
2 建立自己的”积木库”。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。
VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!
我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程:
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |