Html/Java/Flash:读取剪贴板内容
我在互联网和StackOverflow上搜索了又搜索 它正在变成白胡子 我需要处理从Excel复制的剪贴板的内容,并通过单击网页上的按钮将其粘贴到几个文本输入中 我不需要在一个隐藏的输入中执行CTRL-V,然后每隔几秒钟查看内容,等等 强制性问题: 使用“某物”无法读取剪贴板? 告诉我“不”,我就睡着了Html/Java/Flash:读取剪贴板内容,java,html,flash,clipboard,Java,Html,Flash,Clipboard,我在互联网和StackOverflow上搜索了又搜索 它正在变成白胡子 我需要处理从Excel复制的剪贴板的内容,并通过单击网页上的按钮将其粘贴到几个文本输入中 我不需要在一个隐藏的输入中执行CTRL-V,然后每隔几秒钟查看内容,等等 强制性问题: 使用“某物”无法读取剪贴板? 告诉我“不”,我就睡着了 Carlo使用此文本创建类文件 import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.ClipboardOwn
Carlo使用此文本创建类文件
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.Toolkit;
import java.io.*;
public final class clipboardData implements ClipboardOwner {
public static void main(String... aArguments ){
clipboardData Clipboard = new clipboardData();
}
/**
* Empty implementation of the ClipboardOwner interface.
* @param aClipboard
* @param aContents
*/
@Override
public void lostOwnership(Clipboard aClipboard, Transferable aContents){
//do nothing
}
/**
* Place a String on the clipboard, and make this class the
* owner of the Clipboard's contents.
* @param aString
*/
public void setData(String aString){
StringSelection stringSelection = new StringSelection(aString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, this);
}
/**
* Get the String residing on the clipboard.
*
* @return any text found on the Clipboard; if none found, return an
* empty String.
*/
public String getData() {
String result = "";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
//odd: the Object param of getContents is not currently used
Transferable contents = clipboard.getContents(null);
boolean hasTransferableText =
(contents != null) &&
contents.isDataFlavorSupported(DataFlavor.stringFlavor);
if (hasTransferableText) {
try {
result = (String)contents.getTransferData(DataFlavor.stringFlavor);
}
catch (UnsupportedFlavorException | IOException ex){
System.out.println(ex);
ex.printStackTrace();
}
}
return result;
}
}
上述代码可通过以下功能访问:
创建新的剪贴板编辑器:
clipboardData clipboardData = new clipboardData()
设置数据功能:
clipboardData.setData(Data)
clipboardData.getData();
getData函数:
clipboardData.setData(Data)
clipboardData.getData();
在Java中,访问本地剪贴板被视为一种安全威胁,因此这是错误的。在Flash中(我认为像Silverlight这样的东西),我相信剪贴板访问在默认情况下是关闭的,但是用户可以更改设置以允许它。