gpt4 book ai didi

java - 从 Visual C++ 代码调用时机器人事件未触发

转载 作者:行者123 更新时间:2023-12-01 05:06:26 25 4
gpt4 key购买 nike

我有一个在 2 个用户之间共享屏幕的项目,然后远程控制屏幕。我有一个 Visual C++ 代码,通过它我调用 Java 屏幕共享方法来共享屏幕。这工作得很好。

现在我正在尝试调用其他机器人事件,例如(mouseMove、keypress 等)。我能够从我的 C++ 代码顺利调用 Java 方法(其中包含机器人事件调用),并且该函数始终返回 true我的C++代码,从而显示成功执行,但是用Java方法编写的机器人事件没有被触发。任何人都可以帮助我找到正确的方向。我的代码如下:

来自 C++ 代码:

 status=  m_pJVM->InvokeClassMethod(m_sccObj,"keyPress", 
"(D)V", NULL,
keyCode);
if (status)
{
GetLogger()->Log(_T("Successfull key Press"));
}
else
{
GetLogger()->Log(_T("Unsuccessfull key Press"));
}

在这里,我总是在控制台上输出“成功按键”。

在Java端代码是:

public boolean keyPress(double key)
{
try
{
this.robot = new Robot();
if(robot != null)
{
robot.delay(5000);
robot.keyPress(java.awt.event.KeyEvent.VK_T);
robot.keyPress(KeyEvent.VK_E);
robot.keyPress(KeyEvent.VK_S);
robot.keyPress(KeyEvent.VK_T);
return true;
}
else
{
return false;
}
}
catch(Exception e)
{
return false;
}
}

谁能告诉我这里是否遗漏了任何东西。

谢谢,任何帮助将不胜感激。

最佳答案

java 进程应该在可以访问当前桌面的用户空间中运行。
检查它启动的凭据。如果它通过服务运行 - 请确保:

Services.msc > [您的主机服务] > 登录 > 允许服务与桌面交互已选中。

尽管您说它已经能够访问屏幕 - 这可能不是问题。

关于java - 从 Visual C++ 代码调用时机器人事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12595685/

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