提供计算机应用程序多次复用粘贴的系统及其方法

文档序号:6353208
专利名称:提供计算机应用程序多次复用粘贴的系统及其方法
技术领域
本发明属于操作系统优化技术领域,具体涉及一种多次可复用、不丢失数据、不影 响系统运行速度的windows剪贴板的实现方法。
背景技术
剪贴板是内存中的一块区域,是windows内置的一个非常有用的工具,使得在各 种应用程序之间传递和共享信息成为可能。使用它,只要简单的按几个键操作就可以从一 个文件拷贝到另一个文件中。Windows剪贴板是windows系统下一个拷贝和粘贴功能,其 他操作系统如Iinux也有类型的功能。在windows系统中,剪贴板内置在windows中,并且 使用系统的内部资源RAM,或虚拟内存来临时保存剪切和复制的信息,可以存放的信息种类 是多种多样的。剪切或复制时保存在剪贴板上的信息,只有再剪贴或复制另外的信息,或停 电、或退出windows,或有意地清除时,才可能更新或清除其内容,即剪贴或复制一次,就可 以粘贴多次。Windows应用程序中的剪切、复制、粘贴命令是剪贴板应用的典型操作,它的流程 就是当用剪切或复制命令对数据进行操作后,这些数据就被蚕食存放在剪贴板中,使用粘 贴命令就会把这些数据从剪贴板中拷贝到目标应用程序中。然而美中不足的是,传统的 windows剪贴板具有三个明显的缺陷
首先,Windows剪贴板从“出生”至今,都只支持一次复制,下一次复制时将会覆盖前一 次复制到剪贴板中的内容,使得用户的多次复制成为妄想。例如当用户想复制某一段文本 中的第η行和第η+2行时就必须经过两次复制粘贴操作才能达到预期的效果。其次,由于剪贴板是存在于系统内存中的,所以一旦关闭、重启、断电之后,剪贴板 中的数据就会随之消失,这样一来,剪贴板中的数据就有了“不稳定”这一特征,随时会发生 “意外”,使剪贴板中的数据流失。最后,由于剪贴板是存在于系统内存中的,所以如果一次复制了一个大容量的数 据后,将会造成系统内存开销过大,影响整个系统的运行速度,得不偿失,这时候用户必须 得另谋他法(如再复制一个短小的数据覆盖剪贴板中庞大的数据或者将剪贴板中的数据清 除或粘贴出来)才能解决系统运行速度缓慢的问题,而事实上并非所有的用户都懂得“另谋 他法”,这就使得剪贴板成为了不为人知的系统运行缓慢的一大“杀手”。虽然现在流传的几款剪切板增强工具也能做到多次复制,但其工作原理大多是在 原有剪贴板的基础上作的改进,使其再次复制的时候不再覆盖剪贴板中的原有内容,仍然 是在内存中开辟一块区域,虽然能解决第一个问题,但后面的两个问题仍然不能解决。

发明内容
本发明目的在于提供一种提供计算机应用程序多次复用粘贴的系统,解决了现有 技术中复制粘贴操作不能多次复制或复制粘贴内容过大导致系统运行速度缓慢等问题。为了解决现有技术中的这些问题,本发明提供的技术方案是一种提供计算机应用程序多次复用粘贴的系统,包括对数据进行复制操作将数据复制 到内存中的数据复制模块和将内存中指定数据粘贴到应用程序指定位置的数据粘贴模块, 其特征在于所述系统还包括将复制到内存中的数据进行提取,并将数据存储到外部存储设 备的数据提取模块、对外部存储数据进行分类、管理的数据处理模块和根据数据粘贴模块 的请求将存储到外部存储设备的数据导入到内存中的数据导入模块;所述数据导入模块将 数据导入到内存后,数据粘贴模块将指定数据粘贴到指定位置。优选的,所述数据提取模块通过调用GetCl ipboardData接口提取内存中数据,将 数据存储入外部存储设备中;然后通过调用EmptyClipboard接口清空数据所在内存。优选的,所述数据提取模块监听用户复制操作;数据提取模块监听到用户通过数 据复制模块进行数据复制时,启动数据提取模块进行数据提取操作。优选的,所述数据处理模块包括排序模块、添加模块、更新模块和删除模块,所述 排序模块用于对外部存储设备中存储的数据按照指定规则进行排序操作;所述更新模块用 于对外部存储设备中存储的数据进行实时更新操作;所述添加模块用于对外部存储设备 中存储的数据进行添加操作;所述删除模块用于对外部存储设备中存储的数据进行删除操 作。优选的,所述系统还包括数据分类模块,所述数据分类模块通过调用 GetClipboardFormatName接口获取数据的类型根据数据类型对数据提取模块提取的数据 进行分类后存储入外部存储设备中。优选的,所述数据导入模块监听用户粘贴操作;数据提取模块监听到用户通过数 据粘贴模块进行数据粘贴操作时,数据导入模块通过调用SetClipboardData接口将指定 数据导入内存供数据粘贴模块进行粘贴操作。优选的,所述数据导入模块还包括数据预览模块;数据提取模块监听到用户通过 数据粘贴模块进行数据粘贴操作时,数据导入模块将外部存储设备中所有复制数据导入到 内存中并显示给用户,供用户选择粘贴的指定数据。优选的,所述数据粘贴模块监听用户选择粘贴指定数据的确认指令;用户确认选 择粘贴指定数据时,数据粘贴模块调用粘贴指令在应用程序指定位置进行粘贴操作。本发明还提供了一种提供计算机应用程序多次复用粘贴的方法,其特征在于所述 方法包括以下步骤
(1)提取用户复制到内存中的数据,存储到外部存储设备中,并清空数据所在内存;
(2)粘贴时将外部存储设备中的数据导入到内存中,通过调用粘贴指令进行粘贴指定 数据。优选的,所述方法还包括对步骤(1)存储到外部存储设备中的数据进行删除、添 加、更新和排序操作。本发明的提供计算机应用程序多次复用粘贴的系统可以应用于windows系统或 其他操作系统中,当应用于windows系统时,与windows的剪贴板功能结合,将每次复制到 剪贴板中的内容保存在外部存储设备中,从而做到可多次复制、不丢失数据以及不影响系 统运行速度的目的。同时,对于保存在外部存储设备中的“剪贴板中的数据”,可以通过第三 方工具进行管理,例如排序、格式转换、大小写变换等等工作,使得剪贴板的使用更加得心 应手,更加方便。
本发明的系统主要包括以下模块数据提取模块、数据分类模块、数据处理模 块;数据导入模块、数据粘贴模块。当用户进行一次复制操作后,数据被保存到剪贴板 上,此时,由数据提取模块将剪贴板中的数据提取出来(对应剪贴板提供的编程API为 GetClipboardData接口),保存到外部存储设备中,接着清空剪贴板(对应剪贴板提供的编 程API为EmptyClipboard接口)。这样一来,就解决了数据丢失问题和影响系统运行速度的 问题由于数据时保存在外部存储设备上的,而剪贴板所属的内存块已被清空,即使关机、 重启甚至突然断电都不会影响到已经复制的数据。当用户进行第二次复制的时候,同样的 通过数据提取模块提取剪贴板中的数据提取出来并保存到外部存储设备上,这样一来,便 解决了不能多次复制的问题,虽然剪贴板中仍然只能保存一次复制的内容,但事实上多次 复制的内容已经被保存到外部存储设备中。剪贴板中的数据被提取出来后,可通过数据分类模块对其进行分类(当然,这 个可以由用户来选择,如果是及时复制及时粘贴的用户,进行数据分类反而显得有点多 余)。由于剪贴板中可以同时存放多种格式的数据,各自放在全局内存的不同位置,而对 于每种剪贴板中存放过的格式,windows都会给它分配一个独特的长整形编号,通过这个 编号可以知道对应的数据格式的名称,例如Public Const CF_TEXT = 1,Public Const CF_BITMAP = 2。数据提取模块提取数据的时候可以同时通过剪贴板提供的编程API GetClipboardFormatName接口来获取相应的数据类型交给数据分类模块,由数据分类模块 针对相应的数据类型对数据进行分类。当用户执行粘贴操作的时候,首先调出选择对话框,由用户选择需要粘贴的数 据,接着,由数据导入模块将被选中的数据导入到剪贴板中(对应剪贴板提供的编程API SetClipboardData接口),然后由数据粘贴模块调用剪贴板的粘贴命令,将数据粘贴到相应 的位置。数据处理模块负责对数据进行管理,包括数据排序、添加、更新、删除等等操作。相对于现有技术中的方案,本发明的优点是
本发明提供了一种可多次复用并不丢失数据的windows剪贴板的实现方法,通过本方 法,可以解决windows剪贴板只能复制一次以及复制后的数据容易丢失的问题,并且能解 决由于复制大容量数据造成的内存消耗过大而导致系统运行缓慢的问题。同时,可以通过 数据处理模块对数据进行管理,使剪贴板使用起来更加方便,更加顺手。


下面结合附图及实施例对本发明作进一步描述
图1为提供计算机应用程序多次复用粘贴的系统的结构框图。
具体实施例方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明 本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做 进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例如图1所示,该提供计算机应用程序多次复用粘贴的系统,包括对数据进行复制操作将数据复制到内存中的数据复制模块、将内存中指定数据粘贴到应用程序指定位置的 数据粘贴模块、将复制到内存中的数据进行提取,并将数据存储到外部存储设备的数据提 取模块、对外部存储数据进行管理的数据处理模块、根据数据粘贴模块的请求将存储到外 部存储设备的数据导入到内存中的数据导入模块、数据分类模块;所述数据导入模块将数 据导入到内存后,数据粘贴模块将指定数据粘贴到指定位置。数据提取模块通过调用GetCl ipboardData接口提取内存中数据,将数据存储入 外部存储设备中;然后通过调用EmptyClipboard接口清空数据所在内存。数据提取模块监 听用户复制操作;数据提取模块监听到用户通过数据复制模块进行数据复制时,启动数据 提取模块进行数据提取操作。数据处理模块包括排序模块、添加模块、更新模块和删除模块,所述排序模块用于 对外部存储设备中存储的数据按照指定规则进行排序操作;所述更新模块用于对外部存储 设备中存储的数据进行实时更新操作;所述添加模块用于对外部存储设备中存储的数据进 行添加操作;所述删除模块用于对外部存储设备中存储的数据进行删除操作。数据分类模块通过调用GetClipboardFormatName接口获取数据的类型根据数据 类型对数据提取模块提取的数据进行分类后存储入外部存储设备中。数据导入模块包括数 据预览模块,监听用户粘贴操作;数据提取模块监听到用户通过数据粘贴模块进行数据粘 贴操作时,数据导入模块通过调用SetClipboardData接口将指定数据导入内存供数据粘 贴模块进行粘贴操作。数据提取模块监听到用户通过数据粘贴模块进行数据粘贴操作时,数据导入模块 将外部存储设备中所有复制数据导入到内存中并显示给用户,供用户选择粘贴的指定数 据。数据粘贴模块监听用户选择粘贴指定数据的确认指令;用户确认选择粘贴指定数据时, 数据粘贴模块调用粘贴指令在应用程序指定位置进行粘贴操作。在windows系统中,数据复制模块用来调用粘贴板复制命令复制数据;数据提取 模块用来提取数据,数据分类模块用来将提取出来的数据进行分类,而数据管理模块负责 提取用户的设置信息将数据进行管理,数据导入模块负责将用户选中的数据导入剪贴板, 数据粘贴模块则调用剪贴板的粘贴命令,将剪贴板中的数据粘贴到相应位置。当用户进行一次复制操作后,数据被保存到剪贴板上,此时,由数据提取模块将剪 贴板中的数据提取出来(对应剪贴板提供的编程API为GetClipboardData接口),保存到 外部存储设备中,接着清空剪贴板(对应剪贴板提供的编程API为EmptyClipboard接口)。 这样一来,就解决了数据丢失问题和影响系统运行速度的问题由于数据时保存在外部存 储设备上的,而剪贴板所属的内存块已被清空,即使关机、重启甚至突然断电都不会影响到 已经复制的数据。当用户进行第二次复制的时候,同样的通过数据提取模块提取剪贴板中 的数据提取出来并保存到外部存储设备上,这样一来,便解决了不能多次复制的问题,虽然 剪贴板中仍然只能保存一次复制的内容,但事实上多次复制的内容已经被保存到外部存储 设备中。剪贴板中的数据被提取出来后,可通过数据分类模块对其进行分类(当然,这 个可以由用户来选择,如果是及时复制及时粘贴的用户,进行数据分类反而显得有点多 余)。由于剪贴板中可以同时存放多种格式的数据,各自放在全局内存的不同位置,而对 于每种剪贴板中存放过的格式,windows都会给它分配一个独特的长整形编号,通过这个编号可以知道对应的数据格式的名称,例如Public Const CF_TEXT = 1,Public Const CF_BITMAP = 2。数据提取模块提取数据的时候可以同时通过剪贴板提供的编程API GetClipboardFormatName接口来获取相应的数据类型交给数据分类模块,由数据分类模块 针对相应的数据类型对数据进行分类。当用户执行粘贴操作的时候,首先调出选择对话框,由用户选择需要粘贴的数 据,接着,由数据导入模块将被选中的数据导入到剪贴板中(对应剪贴板提供的编程API SetClipboardData接口),然后由数据粘贴模块调用剪贴板的粘贴命令,将数据粘贴到相应 的位置。本发明中数据分类模块可由用户手动设置需要或者不需要,数据管理模块可由用 户手动设置数据排序方式为名称排序、时间排序、大小排序或者使用量排序,也可以设置最 大保存的数据条数,以免保存条目过多不易于操作、占用空间过大等等问题。本系统适用于 操作系统领域,该系统可保证windows剪贴板复制可多次复用、保证数据不丢失、不影响系 统运行速度。上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是 能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精 神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种提供计算机应用程序多次复用粘贴的系统,包括对数据进行复制操作将数据 复制到内存中的数据复制模块和将内存中指定数据粘贴到应用程序指定位置的数据粘贴 模块,其特征在于所述系统还包括将复制到内存中的数据进行提取,并将数据存储到外部 存储设备的数据提取模块、对外部存储数据进行分类、管理的数据处理模块和根据数据粘 贴模块的请求将存储到外部存储设备的数据导入到内存中的数据导入模块;所述数据导入 模块将数据导入到内存后,数据粘贴模块将指定数据粘贴到指定位置。
2.根据权利要求1所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据提取模块通过调用GetClipboardData接口提取内存中数据,将数据存储入外部存 储设备中;然后通过调用EmptyClipboard接口清空数据所在内存。
3.根据权利要求2所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据提取模块监听用户复制操作;数据提取模块监听到用户通过数据复制模块进行数据 复制时,启动数据提取模块进行数据提取操作。
4.根据权利要求1所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据处理模块包括排序模块、添加模块、更新模块和删除模块,所述排序模块用于对外部 存储设备中存储的数据按照指定规则进行排序操作;所述更新模块用于对外部存储设备中 存储的数据进行实时更新操作;所述添加模块用于对外部存储设备中存储的数据进行添加 操作;所述删除模块用于对外部存储设备中存储的数据进行删除操作。
5.根据权利要求1所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述系统还包括数据分类模块,所述数据分类模块通过调用GetClipboardFormatName接口 获取数据的类型根据数据类型对数据提取模块提取的数据进行分类后存储入外部存储设 备中。
6.根据权利要求1所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据导入模块监听用户粘贴操作;数据提取模块监听到用户通过数据粘贴模块进行数据 粘贴操作时,数据导入模块通过调用SetClipboardData接口将指定数据导入内存供数据 粘贴模块进行粘贴操作。
7.根据权利要求6所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据导入模块还包括数据预览模块;数据提取模块监听到用户通过数据粘贴模块进行 数据粘贴操作时,数据导入模块将外部存储设备中所有复制数据导入到内存中并显示给用 户,供用户选择粘贴的指定数据。
8.根据权利要求7所述的提供计算机应用程序多次复用粘贴的系统,其特征在于所 述数据粘贴模块监听用户选择粘贴指定数据的确认指令;用户确认选择粘贴指定数据时, 数据粘贴模块调用粘贴指令在应用程序指定位置进行粘贴操作。
9.一种提供计算机应用程序多次复用粘贴的方法,其特征在于所述方法包括以下步骤(1)提取用户复制到内存中的数据,存储到外部存储设备中,并清空数据所在内存;(2)粘贴时将外部存储设备中的数据导入到内存中,通过调用粘贴指令进行粘贴指定 数据。
10.根据权利要求9所述的方法,其特征在于所述方法还包括对步骤(1)存储到外部 存储设备中的数据进行删除、添加、更新和排序操作。
全文摘要
本发明公开了一种提供计算机应用程序多次复用粘贴的系统,包括对数据进行复制操作将数据复制到内存中的数据复制模块和将内存中指定数据粘贴到应用程序指定位置的数据粘贴模块,其特征在于所述系统还包括将复制到内存中的数据进行提取,并将数据存储到外部存储设备的数据提取模块、对外部存储数据进行分类、管理的数据处理模块和根据数据粘贴模块的请求将存储到外部存储设备的数据导入到内存中的数据导入模块;所述数据导入模块将数据导入到内存后,数据粘贴模块将指定数据粘贴到指定位置。该系统可保证windows剪贴板复制可多次复用、保证数据不丢失、不影响系统运行速度。
文档编号G06F9/46GK102141933SQ20111000876
公开日2011年8月3日 申请日期2011年1月17日 优先权日2011年1月17日
发明者宋佳, 戴欢, 王兵, 章登义 申请人:博视联(苏州)信息科技有限公司, 武汉大学苏州研究院
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1