gpt4 book ai didi

Java剪贴板调用粘贴操作

转载 作者:行者123 更新时间:2023-11-30 04:45:20 24 4
gpt4 key购买 nike

我想使用我的 java 应用程序调用粘贴操作。不使用机器人这可能吗?

例如,应用程序会经常调用粘贴操作,因此当我在记事本中书写时,我会看到剪贴板的内容。

JAVA APP                       Notepad
clipboard.paste() --------> clipboardContents

最佳答案

听起来好像您正在尝试使用 Java 来交互或部分驱动另一个应用程序(例如 Windows NotePad)并粘贴到该应用程序,如果是这样,则有几种可能的解决方案,一种是使用 Robot,另一种是使用 Robot Java 进行操作系统调用,尽管这不能直接使用核心 Java 来完成,并且需要使用 JNI、JNA 或其他特定于平台的非核心实用程序,例如 AutoIt(如果适用于 Windows)。

为什么你执意不使用机器人?您能更详细地解释一下您的需求吗?

编辑
关于您的评论:

I want to explore alternatives to Robot, as my client irrationally rejects Robot.

由于这似乎适用于 Windows 平台,因此您可能会考虑探索 Windows API 和您尝试驱动的任何非 Java 程序的 API(如果存在),然后使用 JNA 与其交互。 Windows User32.dll 将允许您获取您尝试驱动的应用程序的窗口句柄 (hWnd),这可能是其正常工作所必需的。

不过,如果您没有提供有关您的问题的更具体的信息,则很难提供更具体的建议。

编辑2
关于您的评论:

I would like the app to be platform independent.

那么,我就想到了机器人。您可能想与客户坐下来谈谈,找出他们如此不喜欢 Robot 的原因,然后温和地解释说,它可能提供实现独立于平台的解决方案的最佳途径。

Are there examples for JNA and/or JNI? I'm not familiar with either.

是的,本网站和其他网站上有很多示例,Google 将帮助您了解更多信息。 JNA 更容易使用,因为它不需要您创建 C 桥接程序,但它可能比 JNI 慢一点,并且不能直接使用 C++ 代码(据我所知)。

编辑3关于您的评论:

I have a serial port listener (java app). I need to provide its contents onto a web browser. Clipboard seemed to be a way to do it.

这就是为什么提供问题的上下文而不是您认为代码解决方案应该如此重要的原因。

应用程序之间的通信并不是一件容易的事情,并且通常 Java 并不是最好的工具,因为它被设计为尽可能与平台无关,它不提供允许与低端应用程序轻松集成的工具。级操作系统功能。我不知道解决您的问题的最佳方法,但我的直觉告诉我,使用剪贴板可能不是正确的方法。很大程度上可能取决于您所谈论的是哪种网络浏览器,它是否具有某种允许与其他程序交互的 API,这些我对此知之甚少。另外你的程序在哪里?在用户的计算机上?您是否考虑过使用某种类型的 Java Web 浏览器库,创建您自己的专用 Web 浏览器程序,并直接从串行端口监听器获取数据(同样,我自己没有这样做,但在 SO 上看到过它的描述)?

I don't understand how bridging to a C program will help me.

我不是在建议这个。仅当您使用 JNI 时才需要这样做,我避免这样做,因为 JNA 更容易(至少对我来说)。

关于Java剪贴板调用粘贴操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com