我有一个在两个用户之间共享屏幕,然后远程控制屏幕的项目。我有一个可视化的c++代码,通过它我可以调用Java screen share方法来共享screen.That,它工作得非常好。
现在我正在尝试调用其他机器人事件,如(mouseMove,keypress等).I能够顺利地从我的c++代码中调用Java方法(其中包含机器人事件调用),并且函数总是将true返回给我的c++代码,从而显示成功执行,但是用Java方法编写的机器人事件不能获得Fired.Can任何人帮助我获得正确的direction.My代码如下所示:
来自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;
}
}谁能说出我是不是遗漏了什么。
谢谢,任何帮助都将不胜感激。
发布于 2012-09-26 14:35:55
java进程应该在可以访问current desktop的用户空间中运行。
检查启动时所使用的凭据。如果它通过服务运行-请确保:
Services.msc > [Your host service] > Log On > Allow service to interact with desktop处于选中状态。
虽然你说它已经可以访问屏幕-这可能是而不是是问题所在。
https://stackoverflow.com/questions/12595685
复制相似问题