【问题标题】:backup and restore clipboard data using win32 api使用win32 api备份和恢复剪贴板数据
【发布时间】:2011-11-25 05:43:54
【问题描述】:

我正在查看 win32 API,它允许我备份剪贴板数据(在内存/文件系统中),然后我可以使用 SetClipboardData 重置它。

我已经看到了 win32 API 集并了解 OpenClipboard、getClipboardData 和 SetClipboardData 将为我完成任务。但我不明白在 GetClipboardData 函数中传递什么格式参数,因为我不知道格式,也不知道任何 API 来获取剪贴板数据的格式。

我想支持尽可能多的格式,我知道延迟渲染和某些私有数据类型可能无法保存。最好的出路是什么,请建议...


我能够备份和恢复文本内容。如何对位图格式做同样的事情。如何基本上将 BITMAP 从其句柄保存在内存中(使用 GetClipboardData 获取)

【问题讨论】:

    标签: winapi clipboard clipboarddata


    【解决方案1】:

    通过调用EnumClipboardFormats() 在剪贴板上查找格式。调用GetClipboardData() 以获取包含特定格式的剪贴板数据的HGLOBAL。您可以通过调用GlobalSize() 来获取内存大小。要读取由HGLOBAL 包裹的内存,请使用GlobalLock()GlobalFree()

    【讨论】:

    • 某些应用程序/格式需要使用 OleGetClipboard()OleSetClipboard() 而不是 GetClipboardData()SetClipboardData(),因此您应该注意这一点。
    • 我可以备份和恢复文本内容。如何对位图格式做同样的事情。如何基本上将 BITMAP 从其句柄中保存在内存中(使用 GetClipboardData 获取)
    • 当然有办法做到这一点,但您需要将其作为一个新问题提出。
    猜你喜欢
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2011-04-19
    • 2016-08-14
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多