使用 win32 api 备份和恢复剪贴板数据
我正在寻找 win32 API,它允许我备份剪贴板数据(在内存/文件系统中),稍后我可以使用 SetClipboardData 重置它。
我已经看过 win32 API 集并了解 OpenClipboard、getClipboardData 和 SetClipboardData 可以为我完成任务。但我不明白在 GetClipboardData 函数中传递什么格式参数,因为我不知道该格式,也不知道任何 API 来获取剪贴板数据的格式。
我想支持最大可能的格式,我知道诸如延迟渲染和某些私有数据类型之类的东西可能无法保存。最好的出路是什么,请建议...
我能够备份和恢复文本内容。如何对位图格式执行相同操作。如何从其句柄中将位图基本上保存在内存中(使用 GetClipboardData 获取)
i am looking from win32 APIs which would allow me to make a backup of the clipboard data (in memory/ file system) and later i can reset it using SetClipboardData.
i have seen the win32 API set and understand that OpenClipboard, getClipboardData and SetClipboardData would do the task for me. But i don't understand what format parameter to pass in GetClipboardData function, as i am unaware about the format and don't know any API either to get Format of the Clipboard data.
i want to support maximum possible formats, i know things like delay rendering and some private data types might not be possible to save. What could be the best way out, please suggest...
I am able to backup and restore the text content. how to do the same for Bitmap format. How to basically save the BITMAP in memory from its handle (fetched using GetClipboardData)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过调用
EnumClipboardFormats()
查找剪贴板上的格式。调用GetClipboardData()
获取包含特定格式的剪贴板数据的HGLOBAL
。您可以通过调用GlobalSize()
来获取内存的大小。要读取由HGLOBAL
包装的内存,请使用GlobalLock()
和GlobalFree()
。Find the formats on the clipboard by calling
EnumClipboardFormats()
. CallGetClipboardData()
to get aHGLOBAL
that contains the clipboard data for a particular format. You can get the size of the memory by callingGlobalSize()
. To read the memory wrapped by theHGLOBAL
useGlobalLock()
andGlobalFree()
.