java - 为什么我无法在以系统用户身份启动的 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 页面复制/粘贴到我的应用程序可以正常工作。
解决方案
推荐阅读
- powershell - 如何停止连续并从 VSTS 中的计划 Web 作业中删除计划
- apache-flink - Apache Flink:设置并行性的指南?
- java - 如何通过java将VSD文件转换为png类型
- javascript - 无法设置 buefy 模态宽度
- jenkins - 将自定义作业属性添加到 Jenkins 作业
- mysql - 在 MySQL 中提取 JSON 数组的某些成员
- c# - 如果在请求结束后进行操作,.Net 会话(StateServer 模式)不同步
- java - Java - 为什么 StringBuffer 需要 base64 才能获得正确的十六进制?
- javascript - 使用 Xampp 进行长轮询
- r - R - 多元线性回归,生成具有特定回归系数的额外变量