我正在尝试使用AWT机器人移动Windows资源管理器窗口。机器人运行Java7,操作系统为Windows7。我可以移动鼠标并点击东西,但是当我尝试点击并拖动时,它似乎根本没有按下按钮。我看不出哪里出了问题,也想不出如何弄清楚发生了什么。我开始使用Sikuli:mouse.mouseDown(InputEvent.BUTTON1_MASK);mouse.drop(targetLocation);当这不起作用时,我尝试了一个较低级别的实现,直接与机器人一起工作:Robotrobot=newRobot();robot.mousePress(InputEvent.BUTTON1_MASK);
我正在尝试使用以下代码模拟击键。当我打开记事本时,它工作正常,但是当我打开我想使用它的游戏时,它什么也没做。所以击键似乎不起作用。我试图模拟鼠标移动和点击,这些Action确实有效。有谁知道如何解决这个问题?我发现了这个问题,HowcanIusejava.awt.Robotinsidegames?但我无法添加评论或任何内容。packageMyProject;importjava.awt.AWTException;importjava.awt.Robot;importjava.awt.event.KeyEvent;publicclassKeyStroke{publicstaticvoid
我正在使用ArduinoUno通过USB或蓝牙将(正版)SNESController连接到计算机。Arduino使用snespadlibrary捕获Controller的按钮按下和释放.它将按钮按下和释放作为字符进行通信(例如,“a”表示按下A,“A”表示释放“A”)。接下来,Java程序使用rxtxlibrary监听串行输出。.最后,Javarobot使用keyPress模拟按键和keyRelease.不幸的是,这种方法有一些缺点。主要问题是键映射。我有点武断地决定哪些按钮将是哪些键盘键。Java似乎没有任何游戏handleKeyEvents.当我说“游戏handleKeyEvent
在java中,您可以使用Robot类来移动鼠标和触发鼠标点击。虽然这很酷,但它也“劫持”了用户的鼠标,因此您无法同时处理多项任务。我想做的是制作一个独立于系统鼠标光标的“假”鼠标,并且只存在于我的java小程序中。从这个意义上说,小程序会认为它是在各种(x,y)位置(在小程序内)被鼠标单击的,但是我可以用系统鼠标做任何我想做的事情,它不会受到影响。我已经看到实现此目的的程序,但我不知道从哪里开始。也许我只是对这个功能使用了错误的术语。如果您能提供任何有关查找位置的建议,我们将不胜感激。-谢谢 最佳答案 WhatIwanttodois
我正在使用java.awt.Robot在java中创建一个机器人。该机器人在浏览器上运行良好(我还使用MicrosoftWord对其进行了测试!)但是当我在游戏中运行它时,唯一可用的功能是mouseMove。我想构建一个只需为我按下键盘按钮的机器人。我实例化机器人类Robotr=newRobot();然后我做一些简单的事情:按z,按1,移动鼠标并单击鼠标右键。r.keyPress(KeyEvent.VK_Z);r.keyRelease(KeyEvent.VK_Z);r.keyPress(KeyEvent.VK_1);System.out.println("Press1button");
在Java中,是否可以使用Robot类来模拟对非ActivityJava窗口(也就是已最小化到后台)的按键? 最佳答案 不,那是不可能的。Robot类只是鼠标和键盘(除其他外)的句柄,对另一个Java应用程序没有特殊权限(同样它对非Java应用程序没有任何权限)如果您需要这样做并且您有应用程序的源代码,您可以添加对该应用程序的支持并监听外部应用程序。如果您没有源代码但仍然需要这种行为,另一种可能性(取决于您需要做什么)是安装虚拟机(如VMWare)并在那里运行程序,然后最小化该VM。 关
我正在使用机器人截取屏幕截图,然后在这些屏幕截图中搜索较小的图像。由于Gamma校正,这适用于Windows但不适用于OSX。我能想到的最佳解决方案是简单地匹配相似的颜色,而不是完全匹配颜色。我担心匹配相似的颜色将意味着超越getRGB,因此会减慢我的程序(因为它会截取多个屏幕截图并将它们与较小的图像进行比较以非常快速地搜索匹配项)。我的问题是,假设我有BufferedImageScreenshot和BufferedImagesmallImage,我将如何确定Screenshot.getRGB(1,1)和smallImage.getRGB(1,1)是否相似颜色?
如何在Java中模拟按下媒体键?如播放/暂停、下一首/上一首、音量控制。C#有VK_MEDIA_PLAY_PAUSE、VK_MEDIA_NEXT_TRACK等。Java有类Robot用于处理键,但没有媒体键。 最佳答案 我使用JNI库来模拟使用C编写的代码的按键操作。我创建了一个.dll文件和一个.java文件来按下“降低音量”、“提高音量”、“静音”、“上一首轨道”、“下一首轨道”和“播放/暂停轨道”媒体键。这是一个link到完整的存储库,但是,我将在下面更详细地解释它。MediaKeys.java必须位于名为“commands”
我知道可以使用RobotClass在java中发送击键,但是有什么方法可以在它已经启动时指定目标进程吗? 最佳答案 机器人会将击键发送到顶部的任何应用程序窗口。要将击键发送到特定目标,您需要先将目标设置为平台的前台窗口。这样做可能需要native代码,例如JNI或(我使用的)JNA提供的代码。如果您希望将击键发送到后台窗口,我相信您不能使用Robot,您将不得不编写native代码。当然,所有native代码解决方案都将依赖于平台。你问:Wouldyoupleasegivemesomemoredetailsonhowtodoitwi
有没有办法让我在java中获取窗口的X和Y值?我读到我必须使用运行时,因为java不能直接搞砸,但是我不太确定如何做到这一点。谁能给我一些关于如何获得它的链接/提示? 最佳答案 要获得“任何其他不相关应用程序”的x和y位置,您将不得不查询操作系统,这意味着可能使用JNI、JNA或其他一些脚本实用程序,例如AutoIt(如果是Windows)。我推荐JNA或脚本实用程序,因为两者都比JNI更容易使用(以我有限的经验),但要使用它们,您需要下载一些代码并将其与您的Java应用程序集成。编辑1我不是JNA专家,但我确实对它进行了一些摆弄,