问题标签 [clipboarddata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
6163 浏览

python - 如何使用 Python 在 OS 剪贴板中添加/获取图像数据?

我有一些 Python 代码可以编辑图像文件,并且想知道如何
将图像数据添加到操作系统剪贴板并从那里获取它。

在寻找跨平台解决方案来替换或获取Python 中的剪贴板文本时,有很多简单的答案(例如,使用带有一些代码
的内置 Tkinter 模块)。 但是,这些方法只能使用纯文本,不能使用其他剪贴板数据,如图像。

我的 Python 版本是 Windows 上的 3.x,但答案需要是跨平台的
(在不同的操作系统上工作),并且还应该支持其他 Python 版本,如 2.x。
我认为它应该只使用内置的 Python 模块,并且代码不应该太复杂(或者解释它的作用)。它可以是 Python 模块,因为文件可以包含在与可移植程序代码相同的文件夹中以避免安装。

还有一些其他相关问题可能适用于图像,但它们仅支持单个操作系统。最好的是将图像复制到 Python3 中的剪贴板和使用 PIL和win32clipboard 在 python 中将图像写入 Windows 剪贴板?.
那里描述的方法(仅适用于 Windows)似乎使用以下步骤:

  • 获取图像的原始二进制数据 - 该方法使用 Python Imaging
    Library ( PIL/Pillow ) 模块加载图像文件,因为它具有稍后使用的其他处理功能,在一个简单
    且流行的标准 API 中。这可以使用不同的模块来完成(例如Pygame)。
  • 使用内置的io
    模块创建一个文件对象变量(用于内存输入/输出流)。对于 Python 2.x,from cStringIO import StringIO使用了 Python 3,但使用了
    更好的io.BytesIO二进制流对象类型——旧的现在只允许文本。
  • 将图像数据以 BMP(Windows 位图/设备独立位图)文件格式保存
    到上一步中的文件对象变量。使用 PIL/Pillow 的方法首先
    将此数据转换.convert("RGB")为包含它的变量。
  • 获取文件对象变量内存缓冲区的全部内容为二进制数据(bytesobject),
    从位置14开始切片,去掉BMP/DIB文件格式的14字节头,然后保存
    为变量。该方法表示,此数据的切片适用于 32 位或 64 位系统,但
    需要 Windows 剪贴板 API,因此不适用于不同的文件格式。
  • 关闭内存缓冲区并将上一步中的图像数据复制到剪贴板。
    该方法使用win32clipboard扩展模块的一部分在 Windows 上执行此操作 -
    它打开剪贴板以供使用,清除它,将其值设置为
    上一步中的图像数据变量(使用 BMP/DIB 类型),然后关闭打开的剪贴板。

此外,还有一个名为Pyperclip的简单跨平台剪贴板文本模块,它
只是 1.5.6 版本的单个文件,并且可能包含可以处理图像数据的代码。

0 投票
2 回答
15064 浏览

javascript - 在 JavaScript 中拦截粘贴数据

我从Javascript 中的 Intercept paste 事件中获得了以下代码。

我需要在粘贴之前获取它,否则我会丢失需要保存的“\n”字符。

它可以很好地拦截具有 id 的一个元素的剪贴板数据。我需要它来处理所有输入元素。当我尝试使用 jQuery 来获取输入元素时,什么都没有。

任何帮助表示赞赏。

0 投票
0 回答
388 浏览

android - 剪贴板不清楚

我创建了一个 android 应用程序,我正在使用此代码在应用程序的 onPause 方法中清除剪贴板

此代码适用于几乎所有设备,但不适用于三星 s4 我的三星 s4 有 android 4.4.2 操作系统

请帮我。

0 投票
3 回答
6479 浏览

vb.net - 如何将文件复制到剪贴板并将其粘贴到其他位置?

我有一个带有小图像缩略图的列表视图。每个图像都有一个标签,其中包含完整路径。

使用右键菜单,用户可以单击复制。

然后执行此代码:

现在,当我单击桌面粘贴文件时,VS2010 中出现异常错误:

System.Windows.Forms.dll 中发生“System.Runtime.InteropServices.COMException”类型的异常,并且在托管/本机边界之前未处理

附加信息:无效的 FORMATETC 结构(来自 HRESULT 的异常:0x80040064 (DV_E_FORMATETC))

我在这里做错了什么?

rg. 埃里克

0 投票
0 回答
294 浏览

javascript - JavaScript 剪贴板数据粘贴纯文本/文本而不是文本/html 或其他媒体类型/mime

如何只允许粘贴纯文本/文本而不是文本/html 或其他媒体类型/哑剧?

目前我正在检索文本,但我必须使用event.preventDefault();并手动替换 DOM 中的 textNode。

这是我获取粘贴文本的方式...

剪贴板 API 中有没有一种方法可以告诉浏览器粘贴纯文本/文本 mime 而不是 text/html mime,这样我就不必求助于使用event.preventDefault();和手动调整anchorNode textNode? 没有框架。

0 投票
2 回答
453 浏览

c# - 如何以编程方式从剪贴板访问复制选择的地址

这是我想要实现的目标:

用户复制一个单元格(或一个范围),例如 A3,并且 - 当她点击按钮时 - 我需要以编程方式访问单元格的地址(以创建链接)。

以文本格式访问剪贴板很容易:

我还发现可以访问不同格式的剪贴板,像这样

但我一辈子都找不到包含链接的格式以及如何获取它。(我循环浏览了 Clipboard.GetDataObject().GetFormats() 提供的所有格式,但有些返回了我无法理解的难以理解的流。

背景资料:

A. 链接必须在那里,因为我可以使用创建绝对引用的“粘贴链接”

B. 我在 Win7 下使用 Excel 2010 和 VS2010 - C#

C. 代码在自定义任务窗格中运行

任何帮助表示赞赏!


所以,

并感谢所有设法阅读到这一点的人。我终于弄明白了。我的解决方案仍然很尴尬,因为我无法从剪贴板了解流的实际结构,但我找到了我正在寻找的东西:

这里的关键显然是 GetData 的特定格式:“链接源”。

读取结果流会生成一个包含许多奇怪字符的字符串,还有工作表的名称和复制范围的坐标。我用简单的方法去除了奇怪的字符

仍然有一些奇怪的字符我无法理解,但好消息是,在第一个感叹号之后,您会找到范围的地址(带有一些固定长度的尾随垃圾)。即使该范围是从另一个工作表复制的,即使该工作表的名称中有奇数字符(如德语变音符号),这也有效。

肯定有一个更整洁的解决方案

通过IStream接口从剪贴板中获取Excel Range对象

但是我发现那里的代码不完整(“明显”的部分被遗漏了),由于我的无能和缺少 IStream 的经验,我无法让它工作。

感谢您使用它来获得一个简洁的解决方案的任何帮助,但我对我目前所拥有的感到满意。多谢你们。

0 投票
1 回答
1560 浏览

javascript - 使用 document.execCommand("paste"); 从剪贴板粘贴数据 在 Firefox 扩展中

我正在尝试将剪贴板数据粘贴到一个变量中,该变量通过 XMLhttprequest POST 消息输入并触发。

我已经使用此代码创建了一个 firefox user.js,以根据此建议增加对剪贴板的访问。

我需要在第二行更改“mydomain”吗?我不希望任何网站都可以访问。只是我的内部 Firefox 扩展。

我已经在这里这里以及mozilla阅读了几本指南。

这是我到目前为止的代码。剪贴板内容应通过 POST 方法发送XMLHttpRequestXMLHttpRequest有效,因为我一直将它用于其他变量。

我很感激任何帮助。谢谢

0 投票
1 回答
52 浏览

c# - windows剪贴板到网页文本框控件

我有一个 mvc 项目,我在其中使用 HTML5 创建了一些控件并将其绑定到相应的视图。该网页中有很多文本框控件。当我进行一些测试时,为所有文本框提供输入是浪费时间,否则我无法继续进行,因为所有文本框控件都存在验证。

所需的解决方案 ::我们将拥有 ac# 桌面应用程序,该应用程序将为该网页的每个控件提供一些虚拟值。同一个桌面应用程序将有一个复制按钮,它有助于将所有值复制到 Windows 剪贴板。现在我不知道如何在将这些值加载到 chrome 浏览器中后将其传递给特定的网页控件。

我对 mvc 和 web 很陌生,所以无法找到我应该从哪里开始解决上述问题。请帮忙。提前致谢。

0 投票
1 回答
3433 浏览

javascript - 使用 JavaScript 和 Google Chrome API 将剪贴板数据存储到变量中

我想知道是否可以将剪贴板的内容存储在字符串变量中。

以下消息来源指出,使用纯 JS 是不可能的,但我在希望 chrome API 能够做到这一点。(我正在开发一个 chrome 扩展)。

有一个clipboardRead许可,它会让你相信这是可能的,但它的描述只是:

如果扩展程序或应用程序使用 document.execCommand('paste'),则为必需。 来源

澄清一下:我不想将数据复制到剪贴板或从中粘贴数据。我想将剪贴板的内容存储到一个变量中,而不以任何方式改变剪贴板的内容。

为了进一步澄清,我不能假设剪贴板数据恰好info.selectionText在操作时存在。

如果这是不可能的,那么我想我将不得不忍受它,但它似乎可以通过扩展来完成。


编辑: 我想存储值的原因是因为我需要使用剪贴板来执行操作,但是我想在完成后恢复它的内容,所以用户不会丢失曾经在那里的任何东西。

如果我只是将数据粘贴到文本区域并从那里存储,那么当我将数据放回去时,用户将丢失他们拥有的任何格式,这总比没有好,但不是最佳的。

另外,有没有一种方法可以存储该数据,即使它不是字符串(例如图像)?允许我这样做的解决方案无疑也会隐含地回答上述问题,但不是必需的。我主要是在寻找保存字符串数据,并且更喜欢一种保持格式的方法。

0 投票
1 回答
212 浏览

javascript - 将文件从网络复制到桌面并反向

我正在构建一个基于 Web 的文件管理器,并且想知道是否可以将文件从 Web 复制到桌面并反转。

就像我可以[CTRL] + [C]在桌面上复制文件然后将其粘贴[CTRL] + [V]到其他地方一样。

我认为这只是我发送到剪贴板的问题。

任何人都有这方面的任何信息。