首页 > 解决方案 > 为什么我无法在以系统用户身份启动的 java 应用程序中获取剪贴板数据?

问题描述

我在 Windows 10 上以系统用户身份运行 java 应用程序(仅在这种情况下发生) 。

如果我从记事本(或任何其他纯文本源)复制文本,则可以将其粘贴到我的应用程序中。

如果我从 FireFox 或 Chrome 的网页复制文本,那么我的应用程序看不到它(在 Ctrl+v 上没有任何反应)。我尝试了 JavaFx 和 AWT Toolkit。JavaFx Toolkit 显示了 2 种数据格式:DataObject 和 cf0。但是它们都返回了空数据。好像有些数据是java无法读取的。这与 AWT 案例中的行为几乎相同 - 错误和空值。

最后我发现这个应用程序 https://www.c3scripts.com/tutorials/msdos/paste.html 使用命令行()从剪贴板获取文本Runtime.getRuntime().exec("paste.exe"),它从 html 页面打印出未格式化的文本,这是我期望在 Ctrl 之后看到的+V。

如果我以当前用户身份运行我的 java 应用程序,则从浏览器的 html 页面复制/粘贴到我的应用程序可以正常工作。

标签: javawindowsclipboard

解决方案


推荐阅读