1

我有一个在 2 个用户之间共享屏幕然后远程控制屏幕的项目。我有一个可视化的 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;
        }
    }

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

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

4

1 回答 1

0

java 进程应该在可以访问current desktop.
检查它在什么凭据下启动。如果它通过服务运行 - 确保:

Services.msc> [Your host service]> Log On>Allow service to interact with desktop 被选中。

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

于 2012-09-26T06:35:54.617 回答