gpt4 book ai didi

r - 我可以在 R 中控制鼠标光标吗?

转载 作者:行者123 更新时间:2023-12-01 22:17:29 26 4
gpt4 key购买 nike

是否可以从 R 控制台控制鼠标指针?

我有这样的想法:

move_mouse(x_pos=100,y_pos=200)   # move the mouse pointer to position (100,200)
mouse_left_button_down # simulate a press of the left button
move_mouse(x_pos=120,y_pos=250) # move mouse to select something
mouse_release_left_button # release the pressed button

在 MATLAB 中,可以使用以下代码实现类似的操作

import java.awt.Robot;
mouse = Robot;
mouse.mouseMove(0, 0);
mouse.mouseMove(100, 200);

我尝试将上述内容直接转换为 R,如下所示:

install.packages("rJava")          # install package
library(rJava) # load package
.jinit() # this starts the JVM
jRobot <- .jnew("java/awt/Robot") # Create object of the Robot class

当我在 R 中获得 jRobot 后,我​​尝试使用下面的两个命令调用其方法“MouseMove(100,200)”,但这两个命令都导致了错误。

jRobot$mouseMove(10,10)

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.NoSuchMethodException: No suitable method for the given parameters

.jcall(jRobot,, "mouseMove",10,10)
Error in .jcall(jRobot, , "mouseMove", 10, 10) :
method mouseMove with signature (DD)V not found

最佳答案

终于找到问题所在了。您必须告诉 R 100 是一个整数,才能将其正确传递给 java。

install.packages("rJava")          # install package
library(rJava) # load package
.jinit() # this starts the JVM
jRobot <- .jnew("java/awt/Robot") # Create object of the Robot class

# Let java sleep 500 millis between the simulated mouse events
.jcall(jRobot,, "setAutoDelay",as.integer(500))

# move mouse to 100,200 and select the text up to (100,300)
.jcall(jRobot,, "mouseMove",as.integer(100),as.integer(200))
.jcall(jRobot,, "mousePress",as.integer(16))
.jcall(jRobot,, "mouseMove",as.integer(100),as.integer(300))
.jcall(jRobot,, "mouseRelease",as.integer(16))

关于r - 我可以在 R 中控制鼠标光标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724305/

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