1

2人のユーザー間で画面を共有し、画面をリモート制御するプロジェクトがあります。画面を共有するためにJava画面共有メソッドを呼び出すビジュアルC++コードがあります。これは非常にうまく機能しています。

今、私は(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"));
    }

ここでは、コンソールの出力として常に「Successfullkeypress」が表示されます。

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 に答える