4 Replies Latest reply: Nov 14, 2010 11:00 AM by baftos RSS

    Robot.class commands ignored by program

    665916
      Hi,

      I wrote a program that uses Robot.class to control some client application.
      It worked fine under windows XP.
      That was a while back and now I've tried it again and it doesn't work.

      Two things changes since then:

      I am using windows 7 now.
      I have a new version of the client application.

      My questions are:
      1. Is it possible to ignore commands coming from the robot class? How would the ignoring program know to do this? (normal mouse commands work of course)
      2. Is there some problem in windows 7 using the robot class? (i doubt it since in works on other windows but...)
      3. Is there any other way to send mouse/keyboard commands to other programs from java code?

      Thanks in advance for any help.
        • 1. Re: Robot.class commands ignored by program
          DarrylBurke
          Moderator action: Moved from Java Programming.

          db
          • 2. Re: Robot.class commands ignored by program
            665916
            I just checked the new version of the client application on windows xp and it works.
            So something in windows 7 is the problem.
            Anyone encountered problems with robot in windows 7?

            Thanks
            • 3. Re: Robot.class commands ignored by program
              793415
              tomster wrote:
              ..So something in windows 7 is the problem.
              I doubt it.
              Anyone encountered problems with robot in windows 7?
              Not me. I wrote a little app. to click the 'snap picture' button of a webcam feed on VLC media player, and it is working just fine under Win. 7 on both a desktop and netbook.
              • 4. Re: Robot.class commands ignored by program
                baftos
                As Andrew says, the Robot works fine on Windows 7, as 'fine' as such a class can work. What I mean by that?
                Applications based on the Robot class are inherently fragile and subject to failures when: screen resolution changes, UI themes are invoved, aero, client application changes or 'adapts' itself to another environment. This is especially true when it comes to mouse handling: a click at x,y that was hitting a button in environment A may hit nothing in B.
                So yes, the Robot works in Windows 7, but you may have to rewrite the application.

                By the way, after trying hard some ltime ago to use java and the Robot for such things and having to struggle with JNI to get something reasonable, I completely gave up and re-wrote it in C#. Even in C# I absolutely stayed away from the mouse, but my client application had keyboard support for al I needed. And even in C# I had to call native API's, but it's easier.

                Edited by: baftos on Nov 14, 2010 11:59 AM