This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 31st, when you will be able to use this site as normal.

    Forum Stats

  • 3,890,899 Users
  • 2,269,649 Discussions
  • 7,916,821 Comments

Discussions

Robot.class commands ignored by program

665916
665916 Member Posts: 4
edited Nov 14, 2010 12:00PM in Abstract Window Toolkit (AWT)
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.

Answers

  • darrylburke
    darrylburke Member Posts: 18,007
    Moderator action: Moved from Java Programming.

    db
  • 665916
    665916 Member Posts: 4
    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
  • User_64CKJ
    User_64CKJ Member Posts: 7,279 Silver Badge
    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.
  • baftos
    baftos Member Posts: 3,431
    edited Nov 14, 2010 12:00PM
    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
This discussion has been closed.