Java Robot - Unable to perform SHIFT-RIGHT

2 views (last 30 days)
Philip M
Philip M on 23 Mar 2021
Answered: Gautam on 9 Jan 2025
I'm trying to use the Java robot to do a page-right command which, in the program in I'm trying to use it for, can be performed with a SHIFT-RIGHT keyboard input. This is essentialy the code I'm using:
import java.awt.*
import java.awt.event.*
rob=Robot;
rob.keyPress(KeyEvent.VK_SHIFT)
rob.keyPress(KeyEvent.VK_RIGHT)
rob.keyRelease(KeyEvent.VK_RIGHT)
rob.keyRelease(KeyEvent.VK_SHIFT)
However, when running the code, the shift key is pressed but appears to essentially be released before the right arrow is pressed, so I only get a single movement to the right instead of a page-right. Replacing VK_RIGHT with VK_A will correctly type an uppercase A as expected, so there seems to be some issue with combining the SHIFT key with non-character keys. I tried adding an autoDelay and adding long pauses between key events, but it didn't fix the issue.
I can of course program it to press the right arrow multiple times, but that's messier and slower and involves an extra step where I have to determine how many right arrow presses it takes to do a page-right.
Any ideas what I can do?

Answers (1)

Gautam
Gautam on 9 Jan 2025
Hello Philip M,
You can introduce a brief delay between the "keypress" and "keyRelease" functions to ensure they are recognized as being pressed simultaneously.
rob.keyPress(KeyEvent.VK_SHIFT)
rob.keyPress(KeyEvent.VK_RIGHT)
rob.delay(100);
rob.keyRelease(KeyEvent.VK_RIGHT)
rob.keyRelease(KeyEvent.VK_SHIFT)

Tags

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!