Html/Java/Flash:读取剪贴板内容

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

我在互联网和StackOverflow上搜索了又搜索

它正在变成白胡子

我需要处理从Excel复制的剪贴板的内容,并通过单击网页上的按钮将其粘贴到几个文本输入中

我不需要在一个隐藏的输入中执行CTRL-V,然后每隔几秒钟查看内容,等等

强制性问题:

使用“某物”无法读取剪贴板? 告诉我“不”,我就睡着了


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这样的东西),我相信剪贴板访问在默认情况下是关闭的,但是用户可以更改设置以允许它。