将剪贴板内容设置为自定义数据
Setting clipboard contents to custom data
我正在将一些 XML 复制到 Clipboard
,这仅对我的应用程序有意义,我不希望其他应用程序能够粘贴。使用以下行:
Clipboard.SetData(DataFormats.UnicodeText, myXML);
我可以正确复制和粘贴内容,但其他文本编辑器也可以粘贴。我原以为会有针对这种情况的 DataFormats.Custom
,但没有。
有没有一种方法可以将数据发送到仅适用于我的应用程序的剪贴板?
(我假设应用程序在获取剪贴板内容之前检查可用的数据格式,如果返回的格式不是它们可以处理的,则不获取它们。例如,如果我使用粘贴,记事本将什么都不做复制图像后的命令)
Clipboard.SetData
需要简单的字符串作为第一个参数,DataFormat
不是枚举。所以你可以这样做:
Clipboard.SetData("my_custom_format", myXml);
然后您可以使用
检查剪贴板是否包含您的数据
if (Clipboard.ContainsData("my_custom_format")) {
var xml = Clipboard.GetData("my_custom_format");
}
而且您将无法将此数据粘贴到记事本等其他编辑器中。
我正在将一些 XML 复制到 Clipboard
,这仅对我的应用程序有意义,我不希望其他应用程序能够粘贴。使用以下行:
Clipboard.SetData(DataFormats.UnicodeText, myXML);
我可以正确复制和粘贴内容,但其他文本编辑器也可以粘贴。我原以为会有针对这种情况的 DataFormats.Custom
,但没有。
有没有一种方法可以将数据发送到仅适用于我的应用程序的剪贴板?
(我假设应用程序在获取剪贴板内容之前检查可用的数据格式,如果返回的格式不是它们可以处理的,则不获取它们。例如,如果我使用粘贴,记事本将什么都不做复制图像后的命令)
Clipboard.SetData
需要简单的字符串作为第一个参数,DataFormat
不是枚举。所以你可以这样做:
Clipboard.SetData("my_custom_format", myXml);
然后您可以使用
检查剪贴板是否包含您的数据if (Clipboard.ContainsData("my_custom_format")) {
var xml = Clipboard.GetData("my_custom_format");
}
而且您将无法将此数据粘贴到记事本等其他编辑器中。