gpt4 book ai didi

C# - 剪贴板 Hook 检查正在复制的数据是真的图像还是文本?

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:19 29 4
gpt4 key购买 nike

我有一个小程序正在监听图像的剪贴板( Hook )。如果有存储或通过ctrl+c等复制的图像,我的程序会自动将图像粘贴到打开的word文档中。

代码:

if (Clipboard.ContainsImage())
{
IDataObject obj = Clipboard.GetDataObject();
if (obj.GetDataPresent(DataFormats.Bitmap))
{
Microsoft.Office.Interop.Word.Range range = thefile.Bookmarks.get_Item(@"\endofdoc").Range;
range.Paste();
newdoc.Selection.EndKey(WdUnits.wdStory);
}
}

我只是不明白为什么将来自某个应用程序的文本复制到文档,而实际上我只是在寻找位图数据格式(基于我的代码)。有没有办法检查正在复制的数据是否真的是图像或文本?我做 printscreen 没有问题,但每次我从某个应用程序复制文本时(我相信在执行 ctrl+c 后现在存储在剪贴板中),文本被认为是图像?

最佳答案

我认为原因是剪贴板可以同时包含各种格式的数据,例如文本和位图。因此,当您运行 range.Paste() 并且剪贴板同时包含文本和位图数据时,将复制文本数据。

为避免这种意外行为,您需要通过调用 Clipboard.GetImage() 仅从剪贴板获取图像数据,然后将其粘贴到您的 word 文档中。

不幸的是,我找不到任何简单的方法来做到这一点,但是 this answer可能会有帮助(即将剪贴板图像数据写入文件,然后调用 Shapes.AddPicture 以在 word 文档中显示图像)。

关于C# - 剪贴板 Hook 检查正在复制的数据是真的图像还是文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25702193/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com